У меня есть 2 способа, которые возвращают обещание (укороченное с не Асинхр рассасывается)Использования Цепных Promises с .При
function methodA() {
var d = $.Deferred();
d.resolve('A');
return d.promise();
}
function methodB (dependency) {
var d = $.Deferred();
// dependency would be used here
d.resolve('B');
return d.promise();
}
И тогда у меня есть еще один метод, который цепь этих
function chainer() {
return methodA().then(function(result) {
return methodB(result);
});
}
А потом я имеют другой метод, который вызывает .когда на этом цепочке
function main() {
$.when(chainer()).done(function (answer) {
console.log(answer);
});
}
Ответ напечатан на консоли i s 'A', а не 'B', как я и ожидал! Почему это? И как я могу получить результат методаB, так как этот метод зависит от метода А.
Благодаря R
«Ответ напечатан на консоли« A », а не« B »- это« B », который напечатан. http://jsfiddle.net/hyjokegu/ Btw, реализация 'chainer' может выглядеть как' return methodA(). then (methodB); 'вместо этого. – zerkms
Хм, так оно и есть ... должно быть что-то еще не так ... – raydenl
Btw, вы должны упростить 'methodA(). Then (methodB)' и 'chainer(). Done (...)' – Bergi