收藏
回答

首页初始化 需要使用wx.request 发送五条请求。如何让请求按照顺序执行,而不是同时执行呢?


回答关注问题邀请回答
收藏

3 个回答

  • 原初魔鬼
    原初魔鬼
    2019-10-17

    自己封装一个方法.

    request: function(obj){

    return new Promise(function(res,rej){

    wx.request({

    url:obj.url,

    data:obj.data,

    success:function(data){

    return res(data);

    }

    })

    })

    }

    然后在启动时:

    async onLaunch(){

    await request();

    await request();

    await request();

    await request();

    await request();

    }

    这里这五条就是顺序执行了,记得打开小程序的增强编译

    2019-10-17
    有用 1
    回复 5
    • Mr丶
      Mr丶
      2019-10-18
      哥 刚试了下。  顺序时正常执行了,但是返回结果有的请求直接返回空了。后台返回了,小程序接受确实空值
      2019-10-18
      回复
    • 原初魔鬼
      原初魔鬼
      2019-10-18回复Mr丶
      你试着把return去掉看一下,结果用一个变量接收,如: let x = await request()
      2019-10-18
      回复
    • Mr丶
      Mr丶
      2019-10-18回复原初魔鬼
      哥解决了 这个是ES7语法  ES6只能用 .then剞劂
      2019-10-18
      回复
    • 原初魔鬼
      原初魔鬼
      2019-10-18回复Mr丶
      打开增强编译就可以用es7了,用then的话,可读性会变差的
      2019-10-18
      回复
    • Mr丶
      Mr丶
      2019-10-18回复原初魔鬼
      async await  还需要导文件 js什么的
      2019-10-18
      回复
  • ctzl
    ctzl
    2019-10-17

    你是要执行完一个再执行下一个?

    2019-10-17
    有用 1
    回复 1
    • Mr丶
      Mr丶
      2019-10-17
      对,因为现在 首页同时加载五条请求,有时候后台返回了,但是wx.request 返回的请求就获取不到
      2019-10-17
      回复
  • 刁_Kyle
    刁_Kyle
    2019-10-17

    async await

    2019-10-17
    有用
    回复 1
    • Mr丶
      Mr丶
      2019-10-17
      哥 能具体点不
      2019-10-17
      回复
登录 后发表内容
问题标签