试图掌握异步代码的概念。为什么在调用函数时错误消息不会传递给链接的catch方法?
也将感谢您对我如何构造错误处理的任何反馈。在阅读完我的内容之后,您应该始终抛出错误,并且永远不要返回错误,但是在这种情况下有意义吗?尝试通过使用DRY的概念对它进行未来验证,因此我可以通过减,乘和除(也不能除以零)来实现它。
const timer = ms => new Promise(resolve => setTimeout(resolve, ms));
const input = (num1, num2) => {
if (!Number.isInteger(num1) || !Number.isInteger(num2)) {
return new Error('Provide whole numbers only');
}
return null;
};
const asyncAdder = async (arg1, arg2) => {
try {
await timer(500);
const validate = input(arg1, arg2);
if(validate){
throw validate;
}
return number1 + number2;
} catch (error) {
console.log(error.message);
}
}
asyncAdder(1,2.1).then(res => console.log(res)).catch(err => console.log(err))
我正试图在Promise和异步/等待之间回溯至第四,以理解这种关系,因此这两个应该代表彼此。因为当使用promise时,它将被捕获在catch方法中。感谢您的反馈。
const promiseAdder = (arg1, arg2) => {
const validate = input(arg1, arg2);
return timer(500).then(() => new Promise((res, rej) => {
if (validate) {
rej(validate);
} else {
res(arg1 + arg2);
}
}));
};