如何等待新承诺得到解决

时间:2018-04-25 13:38:02

标签: javascript node.js promise

我想强迫承诺等到广播被解雇。所以我提到了本网站的一些帖子,并在代码中使用了下面显示的技术 部分。

但实际上 broadcastPromise 不会等到它被解决。

请提供解决方案

const promiseFunctions = {};
const broadcastPromise = new Promise((resolve, reject) => {
  promiseFunctions.resolve = resolve;
  promiseFunctions.reject = reject;
});

broadcast() {
      promiseFunctions.resolve(broadcastValues);
}

return myMethod({
//fire the broadcast
..
})
.then(() => broadcastPromise) //this line must wait till the broadcast is fired and the value from it is resolved
.then(() => 
//do some processing on broadcastPromise
return value;)

1 个答案:

答案 0 :(得分:1)

如果没有看到有问题的代码(myMethod()),你就会使它变得比它需要的更复杂。

broadcast()函数写为promise返回函数,或者async broadcast(){},或者确保它返回一个promise。

然后,从你的承诺链中,myMethod正在返回一个承诺。要等到新的承诺得到解决",要么:

a)使用async function myMethod(){}并等待broadcast()来电。 要么 b)在返回的承诺myMethod()

内链接广播