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

问题描述

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

dTkdA = 0 - q / (Nk * cpk)

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

解决方法

更改:

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

收件人:

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

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

,

您立即致电解决:

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;
  });
};