Показать сообщение отдельно
  #4 (permalink)  
Старый 15.07.2015, 13:29
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Lemme, не обращай на него внимания, это местный цепной тролль)

С асинхронными функциями в JS работают с помощью коллбеков (система замыканий тут очень в тему):
SomeClass.prototype.foo = function(id, onSuccess) {
    ajax({
        method: 'POST',
        url: 'test.php',
        params: 'id='+id,
        success: onSuccess
    });
}

var instance = new SomeClass();
instance.foo(10, function(response) {
    console.log(response);
});


Если хочешь упрощения кода - посмотри в сторону Promise из ES6 (это новейшая спецификация языка, только месяц назад релизнулась), с ними код будет выглядить так:
SomeClass.prototype.foo = function(id) {
    return ajax({
        method: 'POST',
        url: 'test.php',
        params: 'id=' + id,
        success: onSuccess
    });
}

var instance = new SomeClass();
instance.foo(10).then(function(response) {
    
});

Промайзы доступны во всех последних браузерах, кроме IE, для него придется подключить какой-нибудь полифилл.

Последний раз редактировалось Erolast, 15.07.2015 в 20:00.
Ответить с цитированием