Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Возврат данных в асинхронном запросе (https://javascript.ru/forum/misc/11300-vozvrat-dannykh-v-asinkhronnom-zaprose.html)

m00 17.08.2010 11:06

Возврат данных в асинхронном запросе
 
Всем привет.

Есть два класса: Controller и Model.

1. Конструктор класса Controller, создает экземпляр класс Model:
constructor: function() {
     this.model = new Model();
};

2. Класс Model содержит метод asyncRequest, который асинхронно шлет на сервер запросы.

3. Метод класс Controller, вызывает метод asyncRequest:
{
     this.model.asyncRequest();
};

Вопрос, как вернуть данные, полученные с сервера, в Controller?

Пробовал два способа:

Способ 1. Передавал callback функцию в метод asyncRequest:
{
     this.model.asyncRequest(this.callback);
};

Проблема в том, что когда функция вызовется, ей не будут доступны свойства и методы класс Controller.

Способ 2. Передавать объект класса Controller - this, и уже в нём вызывать нужный метод ... но не очень хочется выносить эту логику в класс Model.

Есть какие-нибудь идеи?

Gvozd 17.08.2010 11:15

используйте замыкание

Kolyaj 17.08.2010 11:27

Нужно совместить оба способа. Передавать колбэк и контекст вызова.

m00 17.08.2010 11:42

Цитата:

Сообщение от Gvozd (Сообщение 67645)
используйте замыкание

Об этом тоже думал, но решил оставить на потом.

Цитата:

Сообщение от Kolyaj (Сообщение 67648)
Нужно совместить оба способа. Передавать колбэк и контекст вызова.

Сейчас пробую это.

Спасибо.


Часовой пояс GMT +3, время: 05:18.