【问题标题】:Can I resolve a Promise from the outside?我可以从外部解决 Promise 吗?
【发布时间】:2016-10-26 21:20:36
【问题描述】:

使用 ES2015,我可以从外部解决一个承诺,即在它创建后触发一个解决方案吗?

喜欢

const promise = new Promise();
promise.then(() => foo());
promise.resolve(); // foo() gets executed

【问题讨论】:

标签: promise ecmascript-6 es6-promise


【解决方案1】:

是的,你可以。

let resolvePromise = null;
const promise = new Promise(resolve => resolvePromise = resolve);
promise.then(foo => console.log(foo));
resolvePromise('bar');

【讨论】:

    【解决方案2】:

    当然可以。只需在外部引用函数并调用它。 由于函数是对象(作为引用存储在变量中),我们可以在外部引用它之后从外部调用解析函数。

     var a;
        function b(){
            var c = new Promise( function(resolve, reject){
                a=resolve;
            });
            return c;
        }
        b().then((data) => {
        console.log(data);
        }
        );
        a("hai");
    

    【讨论】:

    • 和其他答案基本一致。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 2016-01-13
    • 2021-05-30
    • 2021-03-08
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多