[英]Why doesn't $.when.apply work as expected
所以說我有一個$ .post函數數組
var pa = [$.post(url0), $.post(url1),......];
$.when(pa[0],pa[1],...]) // works as expected
但
$.when.apply(pa) // does not work
你應該使用:
$.when.apply($, pa);
apply
的第一個參數是應該調用函數的上下文(即this
在函數的上下文中意味着什么)。 第二個參數是一個帶有函數參數的數組。
Function.prototype.apply
要求的上下文中作為第一個參數(其用作參考對象this
,在被調用的函數)
所以你可以稱之為
$.when.apply( null, pa );
我喜歡用一點“詭計”來避免每一次。 我們可以調用Function.prototype.bind
類的
var when = Function.prototype.apply.bind( jQuery.when, null );
現在,我們確實可以打電話
when( pa ).done( /* ... */ ) { }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.