我有 2 个返回承诺的方法(用非异步解析缩短)
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);
});
}
然后我有另一个方法在这个链接器上调用 .when
function main () {
$.when(chainer()).done(function (answer) {
console.log(answer);
});
}
打印到控制台的答案是“A”,而不是我预期的“B”!为什么是这样?我怎样才能得到methodB的结果,因为这个方法依赖于methodA。
谢谢R