【发布时间】:2016-04-13 03:17:19
【问题描述】:
我有以下 jQuery 承诺(使用 TypeScript)。奇怪的是,fail() 中的操作被立即调用 - 错误消息被写入控制台 - 即使承诺随后成功解决:
this.jQuery.getJSON(this.options.searchUrl, queryFilter)
.done(this.orderLinesCallback)
.fail(console.log("Error on retrieving orders"));
【问题讨论】:
-
如何确保promise成功解决?
-
试试
.fail( function(){ console.log("Error on retrieving orders") } )。您实际上执行了console.log()并使用返回值(undefined)作为fail()的回调。 -
显而易见的事情总是被忽视。 @Sirko 是正确的。你只是一直在运行
console,因为它不在匿名函数中:) -
另一件事:
done()函数的回调将失去其作用域。如果范围是必要的,您可能需要将.bind( this )添加到其中。 -
我的错。是的,done() 调用了一个函数,但 fail() 没有。
标签: javascript jquery typescript xmlhttprequest promise