javascript - promise回调噩梦,请问如何优化呢
本文介绍了javascript - promise回调噩梦,请问如何优化呢的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
detail.get(par1)
.then((result)=>{
let l1 = result;
detail.get(par2)
.then((result)=>{
let l2= result;
detail.get(par3)
.then((result)=>{
res.render('index.html', {l1:l1,l2:l2,l3:result});
})
})
这个似乎右回到了回调噩梦,请问该如何调整呢?
解决方案
如果你的 detail.get
是可以并行的,那不如用 Promise.all
一起来吧:
const getDetailPromises =
[par1, par2, par3]
.map(par => detail.get(par));
Promise.all(getDetailPromises)
.then(([l1, l2, l3])
=> res.render('index.html', {l1, l2, l3}));
不然的话这个异步方法貌似没有意义啊。如果一定要等待前面的,那 async/await
无疑是最适合的。也可以像之前的答案那样串几个 then
避免缩进方面的麻烦。
这篇关于javascript - promise回调噩梦,请问如何优化呢的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文