如何使可观察的/承诺等待其他诺言首先发生?
我在Angular中具有NRGX效果,在那里我推动纸张以promisse.lass.sine ande。
但是,一个合格需要花费一些时间来运行,因为它从服务器中获取数据,但是问题在于纸张。所有这些都在一个特定的奖励结束之前运行,所以我没有得到所需的所有结果。
我的问题是如何做出尊重。
代码:
effect = this.actions$.ofType(projectAction.GETDATA).
.switchMap(([action,state])) => {
// this is the function that needs to be completed before the Promisses.all
this.getNameData().then( data => {
promisses.push( this.dataService.getAllNameData(data))
})
names.forEach((name) => {
promisses.push( this.dataService.getAllNameData(name))
})
return Observable.fromPromisse(
Promisse.all(promisses).then((results) => {
//data logic
return new dataAction.getDataSucess(data)
})
);
}
// function:
getNameData() {
return Promise.resolve().then(() => this.getNameFromDatabase() // this returns data from the server)
}
我希望我的解释很清楚。我有小时尝试为此找到解决方案
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过 fork join 实现这一目标。
将每个诺言包裹在a 并放入全球叉。
定义按定义加入叉子等待所有请求已完成
You can achieve that by fork join .
Wrap each promise in a from and put in a global fork.
Fork Join by definition waits for all requests to be completed