【发布时间】:2021-07-07 03:52:50
【问题描述】:
每次如果有来自 API 调用的 504 或 404 我都会收到警告:
可能的未处理承诺拒绝(id:12): ReferenceError:找不到变量: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 中的拒绝?
【问题讨论】:
-
你在哪里定义了变量rej?您确定它的名称相同并且正确导入了吗?
-
@Ajay 我的错,我没有复制那部分代码。我已经更新了我的问题,现在您可以看到我在哪里定义了变量
rej。我正在返回Promise。 -
可能删除try/catch?使用 try/catch 或 .catch(err),不能同时使用。如果您想将错误向上移动,那么只需在 catch 块中执行
throw error即可。另外,axio 本身已经是一个 promise,所以你不需要创建new Promise。
标签: react-native promise