<分区>
在我下面的代码中,如果任何延迟失败,它将进入失败 block 并且所有内容都将丢失。我在这里想要的是,忽略失败的并捕获成功的。有什么优雅的方法吗?如果所有延迟都失败,我将如何去失败的 block 。 一种解决方法是采用 for 循环并在该循环中一个接一个地处理 deferredItems 数组,但这不是一种优雅的方式。
$.when.apply($, deferredItems).done(function(){
}).fail(function(errorObj) {
});
标签 javascript jquery ajax
<分区>
在我下面的代码中,如果任何延迟失败,它将进入失败 block 并且所有内容都将丢失。我在这里想要的是,忽略失败的并捕获成功的。有什么优雅的方法吗?如果所有延迟都失败,我将如何去失败的 block 。 一种解决方法是采用 for 循环并在该循环中一个接一个地处理 deferredItems 数组,但这不是一种优雅的方式。
$.when.apply($, deferredItems).done(function(){
}).fail(function(errorObj) {
});
最佳答案
您可以使用 .always,然后按照您的建议找到已解决的问题
$.when.apply($, deferredItems).always(function(){
var resolvedDeferreds = $.grep(deferredItems, function(deferred){
return deferred.state() === 'resolved';
});
//do stuff with resolved deferreds
})
编辑:
事实证明这是行不通的。 .always
回调会在一个 deferred 失败后立即被调用,并且不会等待剩余的挂起 deferred。看起来没有办法等待延迟数组全部得到解决或仅使用 jquery.when 原样拒绝。
关于javascript - 在处理延迟数组时获得成功的延迟并忽略失败的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34949214/
相关文章:
javascript - 我想在 javascript 中使用 window.getComputedStyle() 获取字体大小,但它不能
jquery - ajaxComplete 不适用于 $(window)
javascript - AJAX/Javascript - 将 txt 文件的内容传递给 Javascript 变量
在重新启动的 Tomcat 中刷新页面后,AJAX GET 请求出现在 URL 栏中
javascript - 如何删除 pnpm 中的嵌套依赖项
javascript - 如何获取鼠标坐标并调用.push()?