【发布时间】:2018-09-08 01:59:14
【问题描述】:
Async/await 确实让我的代码更简洁、更干。在错误处理方面,我不确定最佳实践。我发现的大多数示例在async 函数中都有一个try/catch。如果来电者有.catch(),你必须有吗?下面的 Example2 比 Example1 有什么优势?
示例1 没有异步函数中的try/catch:
function addReminder(data) {
/*do some stuff*/
saveReminder(data)
.then(/*do some stuff*/
.catch(error => console.log("Error saving reminder"));
}
async function saveReminder(data) {
await AsyncStorage.setItem('reminders', JSON.stringify(data));
/* do some stuff */
}
Example2 with try/catch 在异步函数中:
function addReminder(data) {
/*do some stuff*/
saveReminder(data)
.then(/*do some stuff*/)
.catch(error => console.log("Error saving reminder"));
}
async function saveReminder(data) {
try {
await AsyncStorage.setItem('reminders', JSON.stringify(data));
/* do some stuff */
} catch (error) {
throw new Error(error);
}
}
【问题讨论】: