2
我搜索了jquery文檔,但我找不到與jquery.when()具有相同目標的函數,但需要至少一個延遲才能解析(並非全部像jquery.when())才能解決?如果至少有一個Deferreds已解決,jquery中是否有返回promise的函數?
我搜索了jquery文檔,但我找不到與jquery.when()具有相同目標的函數,但需要至少一個延遲才能解析(並非全部像jquery.when())才能解決?如果至少有一個Deferreds已解決,jquery中是否有返回promise的函數?
我不認爲有.race
在jQuery的承諾實現,但是你可以使用另一種輕量級的承諾實現(即promise.js
)這樣做:
var one = Promise.resolve($.ajax(/*whatevs*/));
var two = Promise.resolve($.ajax(/*sth else*/));
Promise.race([one,two]).then(function(winner){
// do whatever
});
另外,您可以在jQuery中也使用Deferred.progress
和.notfiy
(雖然感覺很尷尬):
var one = $.Deferred(function(dfd){
setTimeout(function(){
dfd.notify('foo');
dfd.resolve('foo');
}, 200);
});
var two = $.Deferred(function(dfd){
setTimeout(function(){
dfd.notify('bar');
dfd.resolve('bar');
}, 100);
});
$.when(one, two).progress(function(oneNotification, twoNotification){
console.log(oneNotification, twoNotification);
}).then(function(oneResult, twoResult){
console.log(oneResult, twoResult);
});
你在尋找函數.then()嗎?請回復https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/然後 – MadOX
你期待[像race()]這樣的方法(https://developer.mozilla。 org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise/race)如m90所述?它應該如何處理拒絕?它是否應該同時處理決定和拒絕「第一場勝利」? ''比賽函數返回一個與第一次通過的承諾一樣解決的承諾,它解決或拒絕,無論哪個先發生。「(來自以上文檔) –
編號jquery.when()具有」AND 「之間的延遲(如果d1 && d2 && d3然後解決)。我需要一個「OR」(如果d1 || d2 || d3則解析)。 –