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

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

關(guān)于什么時(shí)候可以*不*等待異步任務(wù)的標(biāo)準(zhǔn) JS 實(shí)踐是什么?

關(guān)于什么時(shí)候可以*不*等待異步任務(wù)的標(biāo)準(zhǔn) JS 實(shí)踐是什么?

Qyouu 2022-11-03 10:32:53
來(lái)自 python 異步背景,在 python 中,始終跟蹤異步任務(wù)(承諾)非常重要。運(yùn)行時(shí)會(huì)為沒(méi)有引用的“浮動(dòng)”異步任務(wù)提供錯(cuò)誤。但是,在 Javascript 中,在某些情況下,只啟動(dòng)一個(gè)異步任務(wù)而不等待它,甚至不記住它的 Promise 似乎是完全可以的,例如,如果你不關(guān)心它的返回值,只是希望它“稍后”執(zhí)行.是否有關(guān)于何時(shí)在瀏覽器或 node.js 中的 JS/TS 中的指南或最佳實(shí)踐,只讓異步任務(wù)離開(kāi)而不保留對(duì)它的引用是可以接受的?顯然,如果您關(guān)心它在主線代碼中的返回值,您必須等待它,同樣,如果您關(guān)心在 main 函數(shù)完成之前報(bào)告錯(cuò)誤。還有哪些其他情況和注意事項(xiàng)?需要明確的是,我不是在詢(xún)問(wèn)意見(jiàn),而是在詢(xún)問(wèn)“觸發(fā)和忘記”異步任務(wù)時(shí)要記住的重要事項(xiàng)(如果這是正確的術(shù)語(yǔ))。
查看完整描述

2 回答

?
四季花海

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

是否以及何時(shí)這樣做將是一個(gè)見(jiàn)仁見(jiàn)智的問(wèn)題,因此這部分對(duì)于 Stack Overflow 來(lái)說(shuō)是題外話。


但具體的問(wèn)題是:如果你這樣做了,你需要采取什么預(yù)防措施嗎?答案是:是的。您需要捕獲和處理錯(cuò)誤。


考慮這個(gè)返回承諾的即發(fā)即棄異步調(diào)用:


doSomethingAsync();

如果正在做的事情可能失敗,則該承諾可能會(huì)被拒絕。如果它被拒絕并且沒(méi)有處理該拒絕,那么:


在瀏覽器中,您會(huì)收到寫(xiě)入瀏覽器控制臺(tái)的錯(cuò)誤。99.9999999% 的用戶(hù)不會(huì)注意到。

在 Node.js 中,您會(huì)將此錯(cuò)誤寫(xiě)入控制臺(tái):

(節(jié)點(diǎn):26477)[DEP0018] DeprecationWarning:不推薦使用未處理的承諾拒絕。將來(lái),未處理的 Promise 拒絕將使用非零退出代碼終止 Node.js 進(jìn)程。


請(qǐng)注意警告:在某些時(shí)候,Node.js 的未來(lái)版本可能會(huì)在您允許未處理的 Promise 拒絕時(shí)開(kāi)始 *終止進(jìn)程。


因此,如果您一勞永逸,請(qǐng)務(wù)必捕獲錯(cuò)誤,即使您只是默默地吞下它們:


doSomethingAsync().catch(error => {}); // Obviously only do this if you really don't

                                       // care about the error!

有趣的旁注:在 JavaScript 中,您一直在處理未處理的承諾履行??紤]:


doSomethingAsync()

.then(result => {

    // ...do something with result...

})

.catch(error => {

    // ...handle/report the error...

});

所有的承諾都在那里處理嗎?


不,那很好。


記住這一點(diǎn)then并catch創(chuàng)建并返回一個(gè)承諾。上面返回的承諾catch沒(méi)有附加任何處理程序。沒(méi)關(guān)系,只要它永遠(yuǎn)被滿足,而不是被拒絕。沒(méi)有任何東西可以滿足這種滿足感。:-)


查看完整回答
反對(duì) 回復(fù) 2022-11-03
?
收到一只叮咚

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

我想我普遍關(guān)心的是,你有處理錯(cuò)誤的機(jī)制嗎?

eslint 有一個(gè)no-floating-promises規(guī)則,至少?gòu)?qiáng)制你添加 a .catch(),我認(rèn)為這很好。


查看完整回答
反對(duì) 回復(fù) 2022-11-03
  • 2 回答
  • 0 關(guān)注
  • 127 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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