axios 调用失败时可能出现未处理的承诺拒绝警告

Possible Unhandled Promise Rejection warning when axios call fails

每次我发出的 API 调用中有 504404 时,我都会收到警告:

Possible Unhandled Promise Rejection (id: 12): ReferenceError: Can't find variable: rej

这是我的编码方式:

function myFunction() {

    const fullURL = 'URL_THAT_I_HIT'
    const data = { "SOME_ID": ID_VALUE, }

    return new Promise((res, rej) => {
        try {
            axios.post(fullURL, data).then((response) => {
                res(response.data)
            }).catch((error) => {
                rej(error)
                alert(error)
            })
        } catch (error) {
            rej(error)
            alert(error)
        }
    })
}

根据我的理解,我正在处理 rej 并且我什至将它包裹起来以便我可以拒绝。下面是我调用 myFunction

的代码
     function fetchMyFunctionCall() {
        if (res === undefined) {
            alert("The call rejected")
        } else {
            console.log(res)
        }
    }

它显示错误消息,但我仍然看到警告。那么,如何正确处理 fetchMyFunctionCall 中的拒绝?

我无法重现你对未定义变量的错误,但我认为你可以像下面这样简化你的代码:

function myFunction() {
  const fullURL = 'URL_THAT_I_HIT'
  const data = {
    "SOME_ID": ID_VALUE,
  }

  return axios.post(fullURL, data).then((response) => {
    return response.data
  });
}

myFunction().then((data) => {
  console.log(data)
}).catch((error) => {
  console.log(error)
})

Axios 本身 returns 一个 promise,因此不需要显式返回一个。