使用ES2015,我可以从外部解析承诺 ,即在创建后触发解决方案吗?
像
const promise = new Promise();
promise.then(() => foo());
promise.resolve(); // foo() gets executed
答案 0 :(得分:4)
是的,你可以。
let resolvePromise = null;
const promise = new Promise(resolve => resolvePromise = resolve);
promise.then(foo => console.log(foo));
resolvePromise('bar');
答案 1 :(得分:0)
当然可以。只需参考外部函数并调用它。 由于函数是对象(在变量中存储为引用),我们可以在外部引用它之后从外部调用resolve函数。
var a;
function b(){
var c = new Promise( function(resolve, reject){
a=resolve;
});
return c;
}
b().then((data) => {
console.log(data);
}
);
a("hai");