第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在鏈接兩個(gè)異步j(luò)Query函數(shù)時(shí)完全避開jQuery promises?

如何在鏈接兩個(gè)異步j(luò)Query函數(shù)時(shí)完全避開jQuery promises?

慕容3067478 2019-07-31 10:43:24
如何在鏈接兩個(gè)異步j(luò)Query函數(shù)時(shí)完全避開jQuery promises?我見過(guò)很多關(guān)于新EMCA承諾的教程,主張避免jQuery庫(kù)中的“promises”。他們通常說(shuō)你可以通過(guò)做這樣的事情來(lái)躲避他們:Promise.resolve($.getJSON(url, params)); // voila!  the jQuery promise is "gone"!但是,當(dāng)我必須將兩個(gè)異步j(luò)Query函數(shù)鏈接在一起時(shí),這并不真正起作用。如何在不使用jQuery的then()或.when()的情況下將兩個(gè)getJSON調(diào)用(第二個(gè)調(diào)用依賴于第一個(gè)調(diào)用)鏈接在一起?相反,我只想使用Promise.all等。我認(rèn)為一個(gè)類似的問(wèn)題問(wèn)題是交叉jquery和EMCA的承諾?
查看完整描述

2 回答

?
飲歌長(zhǎng)嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

JavaScript承諾是可互操作的。您可以根據(jù)需要混合使用它們,所有適當(dāng)?shù)膸?kù)1和本機(jī)承諾都可以接受來(lái)自任何地方3的任何實(shí)現(xiàn)的thenables 2。如果有外國(guó)人出現(xiàn),他們就會(huì)做。Promise.resolve

所以通常你會(huì)編寫你的代碼,好像它們都使用了相同的promise實(shí)現(xiàn),它只是起作用。
但是,現(xiàn)在您要確保所有.then方法調(diào)用都使用您喜歡的實(shí)現(xiàn); 或者您想使用非標(biāo)準(zhǔn)方法或功能?對(duì)于這一點(diǎn),你必須明確地投下所有的承諾在其上直接調(diào)用方法 -而不是其他。

一些例子:

Promise.all([$.ajax(…), $.ajax(…)]).then(…); // just works!
$.ajax(…) // a jQuery promise.then(…)  // so this would be jQuery `then`, which we don't want.
Promise.resolve($.ajax(…)) // explicit cast.then(function(data) {     // native `then`
    return $.ajax(…);      //   just works!})                         // returns a native promise still.catch(…)                  // so we can use its features

1:是的,jQuery是直到3.0版本其中一個(gè)
2:所有的jQuery deferreds和承諾是這樣thenables,雖然
3:真的無(wú)處不在你所期望的一個(gè)承諾,在Promise.resolvethen回調(diào)的返回值,Promise.all參數(shù),...


查看完整回答
反對(duì) 回復(fù) 2019-07-31
  • 2 回答
  • 0 關(guān)注
  • 485 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)