在ReactNative组件中,当我按下一个按钮时,我得到了"可能未处理的承诺拒绝"执行此函数时出错:
def teform(txt):
if x = "オンにして":
return " して"
elif y = "つけて":
return " つけて"
elif z = "付けて":
return " 付けて"
else:
return # ...(not sure what goes here)
我不知道为什么因为它在try / catch块中。
已更新
这是错误功能:
async onAdd(item) {
try {
const response = await fetch('url', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
event_id: item.id,
event_type: item.event_type,
})
});
const responseJson = await response.json();
} catch (error) {
error(error);
}
}
答案 0 :(得分:2)
问题是你在这里用error
参数重新定义了符号catch
:
} catch (error) {
error(error);
}
这样可隐藏您的error()
功能。更改为此(两个符号的名称不同):
} catch (err) {
error(err);
}
因此,当您尝试调用error(error)
时,您尝试执行一个非函数,该函数会导致onAdd()
拒绝异步函数返回的承诺,并且您不会; t在该函数调用上有一个.catch()
处理程序(因为你认为它不能拒绝)。并且,只要您的catch()
处理程序被编写为不会自行抛出,那么您的承诺就不会拒绝,但是您的编码错误导致它抛出。
答案 1 :(得分:0)
var result = []
data.forEach(function(ID,NAME,AGE) {
result.push(ID)
result.push(NAME)
result.psuh(AGE)
});
函数本身也返回一个Promise。什么拒绝的一种非常有效的方法是在async
的结果中添加.catch
。应立即弹出实际错误
答案 2 :(得分:-1)
调用此函数的方法也应该处理错误,可能在您的React类
上