代码并行 && 和Promise.all

场景

  • 页面进入的时候 需要进行多次请求 && 而且请求不可以合并 去初始化页面;
    • 在开始后请求之前,展示加载中的状态特效
    • 在全部完成加载之后, 取消加载状态特效

分析

  • 为了效率 这些请求是不能改成串行的
  • 这些请求是并行的异步请求, 所以是没有办法判断谁最后结束,然后再对应的回调函数中取消加载状态;
    • 但是可以使用 Promise.all()

参考文档

解决

  • 以小程序为例
  // 初始化环境
  initEnv(options) {
    let book_id = options.book_id;
    this.setData({
      book_id
    });

    wx.showLoading();
    // 获取书籍详情
    let  promise_detail = book_model.getBookDetail({
      book_id
    });
    // 获取喜欢本书籍的人的数量
    let promise_favor = book_model.getFavorCount({
      book_id
    });

    // 获取短评列表
    let promise_comment = book_model.getShortComments(book_id);

    Promise.all([promise_detail, promise_favor, promise_comment]).then(response=>{
      this.setData({
        book : response[0],
        like_counter: response[1].count,
        like_status: response[1].like_status,
        list_comments: response[2].comment
      });

      wx.hideLoading();
    });
  
  },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值