Я пытался работать над примером кода, чтобы получить голову от обещаний. Но я не могу понять, как бороться с обратными вызовами и получить «последующее» значение позже.Попытка понять Ember JS обещания
Вот два соответствующих примера JSBin, над которыми я работаю. Написано в многословном стиле, чтобы подражать пекарне.
Ember JS без асинхронной
http://jsbin.com/iSacev/1/edit
чисто синхронный пример, чтобы показать основное поведение (намеренно используя базовую модель объекта)
Ember JS с асинхронным и обещает
http://jsbin.com/udeXoSE/1/edit
Попытайтесь расширить первый пример и реализовать метод, когда все выполняется с задержкой и возвращает выполненный объект обещания позже.
Концепции, пытающиеся понять:
- Как правильно обрабатывать обещания и, в частности Ember.RSVP.Promise и получить объект позже.
- Как использовать метод Ember.run.later вместо SetTimeout
Майк большое спасибо. Ваш пример имеет смысл. Таким образом, «ценность» - это обещанное обещание, и я просто должен справиться с этим. Однако то, что меня смущает, - это то, как обращаться с thennable с другой функцией. например почему эти два примера не работают http: // jsbin.com/omIZeq/1/edit, используя «this» http://jsbin.com/omIZeq/2/edit, используя «значение» –
Рад, что помогло. Поэтому для обработки thennable с fx просто передайте fx в качестве аргумента. Проблема с первым jsbin заключается в том, что вместо передачи fx как arg он выполняет fx и передает его результат как arg. Поэтому вместо 'cookiePromise.then (App.cookieDeliveredSuccessfully (this), App.cookieNotDelivered (this));' it должно быть 'cookiePromise.then (App.cookieDeliveredSuccessfully, App.cookieNotDelivered);' –
Ahhhh ok. Поэтому я предполагаю, что внутренняя реализация функции then передает аргумент за кулисами. Наверное, потому что я не видел что-то между фигурными скобками, его там не было. Теперь экспериментируйте с целым рядом обещаний. Благодаря! –