请教promise的问题,任务A是promise.all,任务C已经依赖任务B,A和B没有依赖,如何让任务B和任务A并发?
主要是两个疑问:
- 任务B这样的promise如何加到all里面?
- 怎么让另外一个任务依赖all?
getAll() {
this.loading = true
let self = this
//任务A
Promise
.all([apiGetFalvors(), apiGetImages()])
.then(([flavors, images]) => {
this.flavorList = flavors.data
this.imageList = images.data
})
.catch((err) => {
console.log(err)
})
//任务B
var p = new Promise(function(resolve, reject) {
self.getDesktopList(resolve)
});
//任务C
p.then(function() {
self.loading = false
self.refreshStatus()
})
.catch(function() {})
},
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Promise
的本质是把回调函数用链式写法来表示,因此你的代码里A和B已经是并发的了Promise.all
方法用于将多个 Promise 实例,包装成一个新的 Promise 实例,也就是说Promise.all
返回的就是一个Promise,只不过它要在所有子任务都fulfilled后在会变成fulfilled,而只要有一个rejected它就会rejected。如果有任务D依赖它,放在任务A的then
里就好了