为了账号安全,请及时绑定邮箱和手机立即绑定

关于ajax异步加载请问数据延迟问题

关于ajax异步加载请问数据延迟问题

青春有我 2018-11-12 17:15:02
在外面定义一个空数组,然后做一个ajax请求,请求内再嵌套一个请求,最终拼接成一个三个对象插入空数组。最终出来的结果顺序都是不一样的,因为for循环执行,但是ajax请求是异步的。最终结果受for循环影响,每次获得的数组结果里面的对象字段顺序都不一样要怎么解决。代码示例:
查看完整描述

1 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

ajax 是异步的,当执行到你的 log 代码时,ajax 还没有返回呢。

给你一个大致的程序吧


function getFirst() {

  return new Promise((resolve, reject) => {

    $.ajax({

      url: '',

      success: (res) => {

        resolve(res);

      },

      fail: (e) => {

        reject(e);

      }

    });

  });

}


function getSecond() {

  return new Promise((resolve, reject) => {

    $.ajax({

      url: '',

      success: (res) => {

        resolve(res);

      },

      fail: (e) => {

        reject(e);

      }

    });

  });

}


function getThird() {

  const getFiles = devId_arr

    .map(file => getSecond(file));

  

  return Promise

    .all(getFiles)

    .then(datas => {

        // 处理

    })

}


// 主程序


getThird().then((data => {

    console.log(data);

}))


查看完整回答
反对 回复 2018-12-28
  • 1 回答
  • 0 关注
  • 524 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信