美文网首页
js循环中含有异步请求同步写法

js循环中含有异步请求同步写法

作者: 秘果_li | 来源:发表于2020-04-06 18:00 被阅读0次

如下 js 函数需要返回一个请求成功的数据数组,但是由于 ajax 为异步请求,循环中发送多个请求,函数 return 时请求结果还未返回,所以 return 的永远是空数组

解决方法

使用 async await 阻断函数执行,等待所有的请求返回,此时 temp 中包含了所有返回数据,也可以在 then() 方法中处理返回数据

Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例
Promise.all() 方法接受一个数组作为参数,数组中的元素必须均为
promise 的实例

    async getAduitNodeData(paramsList) {
      resNodeIdParams = [];
      const promises = paramsList.map(params => {
        return Api.request({
          url: 'XXXXXXX',
          method: 'post',
          data: params
        }).then(result => {
          if (result && result.success) {
            resNodeIdParams.push(result.data);
          } else {
            this.$message({
              type: 'error',
              message: result.errorMsg
            });
          }
        });
      });
      const temp = await Promise.all(promises);
      return resNodeIdParams;
    }

相关文章

  • js循环中含有异步请求同步写法

    如下 js 函数需要返回一个请求成功的数据数组,但是由于 ajax 为异步请求,循环中发送多个请求,函数 retu...

  • 2022-03-11-🌦🌦for 异步执行方案

    for + 异步请求同步执行问题 有个需求是循环请求一个接口获得数据,问题是循环请求了但是接口是异步的,按顺序传过...

  • 异步请求为什么会导致tcp的对头阻塞

    这个异步指的是网络请求不会阻塞其后 js 代码继续执行和浏览器渲染页面其他的部分。 同步和异步 同步和异步关注的是...

  • Okhttp3

    简介 配置 请求思路 get请求思路 post请求思路 get,post 同步和异步请求 异步请求(get) 同步...

  • js深入(require.js与common.js)

    参考资料 require.js(amd) 异步请求模块(适用于浏览器) common js 同步请求模块(适用于n...

  • 网络协议

    网络请求分为4类:GET同步请求GET异步请求POST同步请求POST异步请求 同步网络请求步骤: 1:创建网址字...

  • 夯基础- js event loop机制

    js运行机制 event loop事件循环 js分为同步任务和异步任务,所有的同步任务都在主线程上执行 另外存在着...

  • 网络请求数据并且解析的过程(推荐AFNetworking)

    demo1.http请求,get同步异步,post同步异步get同步 get异步 post异步 2.session...

  • Ajax请求——异步请求原理的分析

    我们知道,ajax是一种异步请求的方式,想要了解异步请求,就必须要先从同步请求说起。 同步请求原理 常见的同步请求...

  • OKHTTP

    OKHTTP 引用 权限配置 测试URL 同步请求 异步请求 异步get请求 异步测试post请求 Retrofi...

网友评论

      本文标题:js循环中含有异步请求同步写法

      本文链接:https://www.haomeiwen.com/subject/ptdbphtx.html