【问题标题】:Following example of JavaScript Promise giving error以下 JavaScript Promise 给出错误的示例
【发布时间】:2021-03-28 21:00:54
【问题描述】:

我正在创建一个承诺,它将接受一个输入,然后返回 (+3) 给它。然后我想打印结果。为什么我会收到错误消息?

var prom = new Promise((item) => item+3);

prom(5).then(console.log(result));

我是 Promises 的新手。请帮忙。

【问题讨论】:

    标签: javascript ecmascript-6 es6-promise


    【解决方案1】:

    首先,您不提供带有参数的承诺。如果你想创建一个有返回值的promise,你需要创建一个返回promise的函数。

    其次,then 接受一个函数,并为其提供可以在 console.log 中使用的结果参数。

    // var prom = new Promise((item) => item+3);
    const prom = item => new Promise((resolve, reject) => resolve(item + 3));
    
    // prom(5).then(console.log(result));
    prom(5).then(result => console.log(result));

    【讨论】:

    • Pl,还添加初始代码,在没有函数包装的情况下,您修复并得到了答案。这也很有帮助。
    • 你是这个意思吗?
    • 是的,但是做两个单独的例子,不要只是添加评论。让两者都工作。让人们决定他想跟随哪个。
    • 这是个好主意,但在这种情况下,您的代码会出错,因此将其与其他代码放在一起是行不通的,您只会看到一个错误,而我的代码甚至不会被执行。
    【解决方案2】:

    您不会以这种方式为承诺提供价值。

    你在你的 Promise 中得到的唯一的东西是 resolve 和 reject 函数,而不是你在那里传递的值。它不是一个函数,它是一个对象。

    相反,您可以将其包装在这样的函数中:

    function prom(item) {
        return new Promise((resolve, reject) => resolve(item+3));
    }
    
    prom(5).then(result => console.log(result));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 2010-11-28
      • 2014-01-07
      • 2018-08-26
      相关资源
      最近更新 更多