大佬教程收集整理的这篇文章主要介绍了jQuery.Deferred()然后,如何解决多个参数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
fn().done(function(arg1,arg2) { console.log(arg1,arg2); }).fail(function(err) { console.error(err); });
现在关于上面的fn功能,需要先等待一些其他的延迟返回才能@L_874_1@.
function other() { // stubbed out to always resolve return $.Deferred().resolve().promise(); } function fn() { return other().then(function() { return [1,2]; }); }
但是这并不奏效,因为arg1将会出现[1,2],而arg2将会是未定义的.我不知道如何从Deferred.then()第一个成功过滤器函数参数返回一些东西,以便最终的管道延迟解析与多个参数.
当然我可以这样做:
function fn() { var done = $.Deferred(); other().done(function(){ done.resolve(1,2); }).fail(function(){ done.reject.apply(done,arguments); }); return done.promise(); }
但是这并不像使用.then()那么优雅,我现在每次都需要担心负面的故障情形API,即使我知道我只是通过拒绝的状态来管理.
.then()不包含用于“传播”返回的集合的任何机制.它只会将收藏品保持原样作为第一个参数.
但是,它将与退回的递延或承诺进行交互.从paragraph starting with “As of jQuery 1.8“:
所以,你可以使用其他()的例子作为fn()的基础来保持它与另一个Deferred()相当简洁:
function fn() { return other().then(function () { return $.Deferred().resolve(1,2).promise(); }); } fn().then(function (a,b) { console.log(arguments.length,a,b); // 2 1 2 });
以上是大佬教程为你收集整理的jQuery.Deferred()然后,如何解决多个参数全部内容,希望文章能够帮你解决jQuery.Deferred()然后,如何解决多个参数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。