在我开始处理异步/等待之前,我想知道是否仍然可以在Promise中使用这样的try / catch语法。还是我现在正在“混合”两个概念?另外,我想知道这是否是处理错误的最佳做法?
const timeout = ms => new Promise(resolve => setTimeout(resolve, ms));
const checkType = (num1, num2) => {
if (typeof num1 !== 'number' || typeof num2 !== 'number') {
throw new Error('Only numbers are allowed');
}
};
const add = (number1, number2) => {
return new Promise((resolve, reject) => {
try {
checkType(number1, number2);
timeout(1000).then(() => resolve(number1 + number2));
} catch (error) {
reject(error);
}
})
};
add(5,'foo').then((result)=> console.log(result)).catch(e => console.log(e.message));
答案 0 :(得分:0)
如果同步函数抛出异常,通常也可以在try/catch
概念之外使用async/await
。