问题描述
碰到这个问题是在nuxt框架的nuxtServerInit里,用于服务端渲染,在这个方法会在服务端阻塞,等待返回promise时执行,我想在这个方法里有序的执行多个promise,因为其他的promise要基于某一个的promise返回值,用then()调用的时候这里的阻塞不会等待到then里面的执行完毕,用promise.all的话又不能保证执行循序,求解
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
nuxtServerInit(store, { params, route, req }) {//在服务端只会阻塞到返回promise
const initData = [
store.dispatch('getToken'),//这个执行完后会拿到一个token,
store.dispatch('getLawyerByIndex')//这个必须基于上面的token去执行
]
return Promise.all(initData)
}
链式调用的话只能拿到'getToken',不会拿到'getLawyerByIndex',用promise.all是可以拿到 但是执行循序没有保证的
我表示没有看懂,既然要串型执行,直接按照
的方式不就好了吗?
这个过程其实类似 Array.reduce 的过程,在每个 then 的返回值中,叠加期望返回的结果就好了。