JQuery Promise:调用 fail() 而不等待 promise 解决

JQuery Promise: fail() called without waiting for promise to resolve

我有以下 jQuery 承诺(使用 TypeScript)。奇怪的是, fail() 中的操作被立即调用——错误消息被写入控制台——即使 promise 随后成功解析:

            this.jQuery.getJSON(this.options.searchUrl, queryFilter)
                       .done(this.orderLinesCallback)
                       .fail(console.log("Error on retrieving orders"));

donefail 参数必须是一个函数:

.done(this.orderLinesCallback)
.fail(function(e, f, g) {
    console.log("Error on retrieving orders");
});

这样做保证 console.log("Error on retrieving orders"); 仅在调用匿名函数(fail 的参数)时执行