【发布时间】:2015-09-22 22:13:41
【问题描述】:
我正在使用此代码来捕获 jsonp 错误,它工作得很好,但当它被这样调用时就不行了。
this.promise = this.model.fetch();
.
.
.
.fail(_.bind(function(collection, response, options) {
console.log('response', response); //timeout
console.log('options', options); //timeout rather than object
})
在其他代码中,我们没有使用 .fail 而是错误:我确实在第三个参数上得到了对象。
顺便说一句,这是一个 jsonp 魔术技巧,因为它会在出现错误时删除窗口对象中的值。另外,超时错误是故意执行的。
然后在错误回调中,我有这段代码来捕获它
if (options.jsonpCallback.indexOf('callback_') !== -1 ) {
// jsonp magic code here
}
这不起作用 .fail 因为选项的值只是一个字符串,即 statusText。值为“超时”
【问题讨论】:
-
你
_.bind做什么? -
Bergi,我今天早上修好了。我删除了 bind 并在顶部声明了 var self = this。
标签: jquery backbone.js promise jquery-deferred