了解Promises的try / catch。尚未解决异步/等待的概念

时间:2020-10-03 06:28:09

标签: javascript asynchronous promise try-catch

在我开始处理异步/等待之前,我想知道是否仍然可以在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));

1 个答案:

答案 0 :(得分:0)

如果同步函数抛出异常,通常也可以在try/catch概念之外使用async/await