我可以从外部解决 Promise 吗?

Can I resolve a Promise from the outside?

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

喜欢

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

是的,你可以。

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

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

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