【发布时间】:2019-08-30 18:37:59
【问题描述】:
function ajax_call() {
var ajaxCallMock = $.Deferred().resolve('A');
return ajaxCallMock.done(function(response) {
return 'B';
});
}
ajax_call().done(function(response) {
console.log(response);
});
我希望控制台输出是“B”,但我得到的是“A”。为什么?
【问题讨论】:
-
因为你只能在一次 AFAIK 中解决一个承诺
-
我认为一个已解决的承诺总是返回另一个已解决的承诺,这是错的吗?
-
哦,我错过了
done部分,抱歉 -
jQuery 的
.done()不是.then()的同义词。在少数情况下您会使用.done()。