这样写应该是可以实现异步串行的
不知道你是不是我这样想的:
声明三个函数,都返回一个promise出来,例如:
function getData1(data) {
return new Promise((resolve, reject) => {
// 这里调用api,当res1.code === 'ok'时候 抛出resolve
API.getData1(data).then(res => {
if (res1.code === 'ok') {
resolve(res)
} else {
reject()
}
})
})
}
然后在async函数中使用
async function handleData () {
let res1, res2, res3
res1= await getData1(data)
res1 && (res2 = await getData2(res1.data))
res2 && (res3 = await getData3(res2.data))
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…