为什么添加不等待超时承诺解决?

时间:2020-10-02 21:00:29

标签: javascript asynchronous promise add

通过制作一个计算器,在给定的毫秒数后给我答案,尝试尝试Promise和异步代码的工作原理。

dTkdA = 0 - q / (Nk * cpk)

为什么add函数不等待超时?不管我传入多少毫秒,它都直接解决。忽略它可以使它更清晰。

2 个答案:

答案 0 :(得分:2)

更改:

timeout(1000).then(resolve(number1 + number2));

收件人:

timeout(1000).then(() => resolve(number1 + number2))

您的代码不是在等待,而是在调用resolve。

答案 1 :(得分:2)

您立即致电解决:

const add = (number1, number2) => {
  return new Promise(resolve => {
    timeout(1000).then(() => {
      resolve(number1 + number2);
    });
  });
};

timeout是一个承诺,您可以完全移除外层:

const add = (number1, number2) => {
  return timeout(1000).then(() => {
    return number1 + number2;
  });
};