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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 JS 中將以前的數(shù)據(jù)與 .catch 一起使用?

如何在 JS 中將以前的數(shù)據(jù)與 .catch 一起使用?

回首憶惘然 2022-10-13 16:26:38
await populartimes(markers[i].placeID)     .then(out => {temp = 'Currently ' + out.now.currently + ' full.'})     .catch(out => {temp = 'Live data is not currently available. Historically, ' + markers[i].name + ' would be ' + out.now.usually + ' full.'})     .catch(out => {temp = 'There is currently no data available.'});我正在嘗試使我的第一個 .catch 語句再次使用第一個返回的數(shù)據(jù),除了這次檢查另一個變量(now.通常而不是 now.currently 在 .then 語句中檢查)。我該怎么做呢?我已經(jīng)寫了這個,但我很確定傳遞給第一個 .catch 的輸出只是來自 .then 的錯誤語句。蒂亞!
查看完整描述

1 回答

?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個贊

不幸的是,在拋出錯誤后,promise 不會對數(shù)據(jù)值進(jìn)行curry。您已經(jīng)在使用一個臨時變量,為什么不使用兩個呢?:


var temp;

var out!: any;

await populartimes(markers[i].placeID)

    .then(value => {

        out = value;

        temp = 'Currently ' + out.now.currently + ' full.';

    })

    .catch(() => {

        temp = 'Live data is not currently available. Historically, ' + markers[i].name + ' would be ' + out.now.usually + ' full.';

    })

    .catch(() => {

        temp = 'There is currently no data available.';

    });

但是,對于將 promise 處理與 await 語句混合使用,我會持謹(jǐn)慎態(tài)度。如果populartimes是異步函數(shù),您的代碼將按預(yù)期工作,但是如果它是返回承諾的普通函數(shù),則您的代碼將不會處理拋出錯誤的情況(返回承諾的函數(shù)可以拒絕承諾或拋出錯誤)。


僅使用await,try/catch您的代碼將相當(dāng)于:


var temp;

try {

    var out = await populartimes(markers[i].placeID);

    try {

        temp = 'Currently ' + out.now.currently + ' full.';

    } catch {

        temp = 'Live data is not currently available. Historically, ' + markers[i].name + ' would be ' + out.now.usually + ' full.';

    }

} catch {

    temp = 'There is currently no data available.';

}


查看完整回答
反對 回復(fù) 2022-10-13
  • 1 回答
  • 0 關(guān)注
  • 87 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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