首页 > 解决方案 > TypeError: func(...).then 不是函数

问题描述

我是 JavaScript 的初学者。我试图理解 JS 中的功能和承诺。我写了一个小代码。代码目的:我写这段代码是为了理解promise function( then)在有返回值的函数上的工作。输入:a,b 输出:如果 a & b 的和为 0,则显示警报语句,否则在警报值中显示 sum。

const func = (a, b) => {

  let operand1 = a * 10;
  let operand2 = b * 10;

  return operand1 + operand2
};

const funcwrapper = (a, b) => {
  func(a, b).then((sum) => {
    if (sum == 0) {
      window.alert("value is zero");
    } else {
      window.alert(("sum is " + sum));
    }
  })
};

funcwrapper(5, 5);

经过大量调查后,我仍然对这个具有一些返回值的函数的承诺感到困惑。所以最后尝试实现代码来理解并陷入这个错误。

请帮助我理解这个话题。

感谢您的帮助。提前致谢

标签: javascript

解决方案


func()需要返回一个承诺:

const func = (a, b) => {

  let operand1 = a * 10;
  let operand2 = b * 10;

  return new Promise((resolve, reject) => resolve(operand1 + operand2));
};

const funcwrapper = (a, b) => {
  func(a, b).then((sum) => {
    if (sum == 0) {
      window.alert("value is zero");
    } else {
      window.alert(("sum is " + sum));
    }
  })
};

funcwrapper(5, 5);


推荐阅读