javascript - promise回调噩梦,请问如何优化呢

查看:63
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆