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

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

fetch 和 async/await 沒有 try/catch

fetch 和 async/await 沒有 try/catch

守著一只汪 2021-12-02 10:27:55
我正在嘗試讓異步等待在沒有 try/catch 的情況下工作  return await fetch(url, options)    .then(res => res.json())    .catch(err => {      throw new Error(err)    })這是我撥打電話的方式:    const response = await makeApiRequest('/reset', {        password: password1,        code    }, {        noauth: true    }).catch(err => {        debugger;        msg = err.message;    });    if (response) {        navigateTo('/');    }問題是沒有一個(gè) catch 塊在工作。該代碼已過期并提供 401。
查看完整描述

2 回答

?
絕地?zé)o雙

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

僅當(dāng)無法發(fā)出請求時(shí),F(xiàn)etch API 才會(huì)失敗。如果可以,即使?fàn)顟B(tài)不好,fetch 也會(huì)成功執(zhí)行。


因?yàn)閠hrow new Error(err)從未被調(diào)用過,所以當(dāng)您嘗試將 a 解析invalid string content為 json 對象 ( res.json())時(shí),它只會(huì)被調(diào)用。我來賓,在 401 情況下,您的服務(wù)器返回一個(gè)有效的 json 字符串,例如{message: "Unauthorized"},然后res.json()工作正常,并且沒有拋出任何錯(cuò)誤。


如果你想捕捉 http 錯(cuò)誤,那么http status codeof resobject 是一個(gè)正確的方法:


  return await fetch(url, options)

    .then(res => {

      if (res.status >= 300) { // error http status code range

        throw new Error(res.status) // throw a error to the catch block

      }

      return res.json();

    })

    .catch(err => {

      throw new Error(err) // catch and throw to the error of previous `.then` block

    })

然后再試一次。


查看完整回答
反對 回復(fù) 2021-12-02
?
收到一只叮咚

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

這就是我的工作:


  return fetch(url, options)

    .then(async res => {

      if (!res.ok) {

        const err = await res.json()

        throw err.message || res.statusText

      }


      return res.json()

    })

    .catch(err => {

      throw new Error(err)

    })

你可以這樣稱呼它:


        const response = await myFetch('/forgot', {

            email

        }, {

            headers: {

                'x-contact': 'hello@puump.com'

            }

        }).catch(err => {

            msg = err.message;

            return;

        });


        if (response) {

            push('/');

        }


查看完整回答
反對 回復(fù) 2021-12-02
  • 2 回答
  • 0 關(guān)注
  • 437 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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