Я действительно надеюсь, что есть что-то немое, что я делаю, но я не могу найти его.Ember.RSVP.all, похоже, сразу же решает
Я пытаюсь использовать Ember.RSVP.all в середине цепочки обещаний. Пример, который у меня есть, намного проще, чем мое использование, но это демонстрирует проблему. В середине цепочки обещаний у меня есть набор обещаний, которые все должны решить до того, как цепочка может продолжаться - именно то, что я понимаю, RSVP.all для.
К сожалению, когда я возвращаю объект RSVP.all, следующее обещание в цепочке выполняется немедленно, не дожидаясь обещаний, переданных всем().
Я создал Js скрипку, чтобы продемонстрировать наилучшим образом, что я могу думать: http://jsfiddle.net/3a9arbht/3/
Обратите внимание, что первый и второй как решить почти точно то же самое время, когда Второй должен быть после того, как 1s обещание возвращается. Третий и четвертый следуют так, как ожидалось.
Fiddle код выглядит следующим образом:
function delayAjax(delay) {
return Ember.$.ajax({
url: '/echo/json/',
data: {
json: '',
delay: delay,
}
});
}
delayAjax(1).then(function() {
Ember.$('#first').addClass('red');
var proms = [delayAjax(1), delayAjax(1)];
return Ember.RSVP.all(proms)
}).then(function() {
Ember.$('#second').addClass('red');
return delayAjax(1);
}).then(function() {
Ember.$('#third').addClass('red');
return delayAjax(1);
}).then(function() {
Ember.$('#fourth').addClass('red');
});
Это ссылка неправильно скрипка? – Bergi
А, ты прав. Сожалею. Обновлено по правильной ссылке: http://jsfiddle.net/3a9arbht/3/ – Carl