【问题标题】:Getting the eventually returned value for promise获取 promise 的最终返回值
【发布时间】:2020-11-16 14:50:51
【问题描述】:

试图更好地理解承诺。在下面的代码中,我试图创建两个分别返回数字 19 和 23 的 Promise。然后尝试控制台记录第一个承诺的返回值,但我得到 promise1.then 不是一个函数。如何获得最终从 promise1 返回的值?谢谢。

const promise1 = () => new Promise((resolve, reject) => {
  console.log('inside promise1');
    setTimeout(resolve, 1000, 19);
});

const promise2 = () => new Promise((resolve, reject) => {
    setTimeout(resolve, 3000, 23);
});

promise1.then(d => console.log(d));

【问题讨论】:

  • promise1 不是一个承诺,它是一个函数...尝试调用该函数...promise1().then(d => console.log(d));

标签: javascript es6-promise


【解决方案1】:

你快到了。 Promise1 是一个返回承诺的函数。错误的原因是您没有将 promise1 作为函数调用。

在调用代码中添加括号。

promise1().then(d => console.log(d));

完整代码:

const promise1 = () => new Promise((resolve, reject) => {
  console.log('inside promise1');
    setTimeout(resolve, 1000, 19);
});

const promise2 = () => new Promise((resolve, reject) => {
    setTimeout(resolve, 3000, 23);
});

promise1().then(d => console.log(d));

【讨论】:

    猜你喜欢
    • 2019-10-27
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多