【问题标题】:Promise not waiting to finish承诺不等待完成
【发布时间】:2017-06-17 12:33:14
【问题描述】:

我今天看了很多例子。他们似乎建议应该在链中执行以下代码:

let f = () => {
    return new Promise((res, rej) => {
        console.log('entering function');
        setTimeout(() => {
            console.log('resolving');
            res()
        }, 2000)
    });
};

Promise.resolve()
    .then(f())
    .then(f());

预期的输出是:

entering function
resolving
entering function
resolving

但事实并非如此。输出是

entering function
entering function
resolving
resolving

我不知道为什么。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript ecmascript-6 promise


    【解决方案1】:

    尝试then(f) 而不是then(f())

    then 需要一个函数。

    你也可以then(()=>f())

    【讨论】:

    • 附加帮助,调用then(f()) 直接调用函数
    猜你喜欢
    • 2018-03-05
    • 2016-10-16
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多