美文网首页
js异步请求问题

js异步请求问题

作者: ZZES_ZCDC | 来源:发表于2018-07-05 19:34 被阅读58次

问题: 后台的接口返回的是一个id,我需要的是那个id对应的详情数据,但是我用自己想的方法发现最后获取不到

let arr = []
result.map(async v => {
  let b = await ctx.service.center.getDetails(id)
  arr.push(b)
}

之后打印arr是个空数组,所以还是存在异步问题

解决方法

首先想到的是,把promise存到数组,然后用Promise.all()把数据搞定

let arr = []
result.map(async v => {
  let b = ctx.service.center.getDetails(id)
  arr.push(b)
}
Promise.all(arr).then(r => console.log(r))

然后了解了map遍历后直接会获取到数组

let arr = result.map(async v => {
  return ctx.service.center.getDetails(id)
}
Promise.all(arr).then(r => console.log(r))

最后全部简写

const arr = await Promise.all(result.map(v => ctx.service.center.getDetails(id)))

相关资料

Promise.all()方法,返回的实例就是传入他里面的所有Promise的完成状态
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

相关文章

  • js异步请求问题

    问题: 后台的接口返回的是一个id,我需要的是那个id对应的详情数据,但是我用自己想的方法发现最后获取不到 之后打...

  • 《微信小程序开发之异步转同步》

    问题概述 基于小程序request请求是异步的特性,app.js onLaunch()中的请求与index.js ...

  • js异步请求时序问题

    问题引入 开发过程中会遇到类似下拉框后端搜索的功能,此时键入key,onChange会频繁触发,可能导致①频发无用...

  • 08_Ajax&Json

    异步请求 无刷新获取服务器资源。特点: js发送异步请求,服务器响应返回的数据给到js,js操作dom更新页面 无...

  • # Vue全家桶之vue-resource &&

    异步请求组件,你也可以认为是异步请求的JS库,毕竟这也确实是封装了原生JS的AJAX库。目前vue-resourc...

  • Node.js 中的并发安全问题

    Node.js 中的并发安全问题 简介 Node.js 采用非阻塞异步IO的方式来处理请求。基于 Libuv 的事...

  • 2018-11-27

    AJAX AJAX是什么??? Asynchronous JavaScript & XML(js请求XML异步的技...

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

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

  • js ajax异步请求

  • js多个异步请求

    js js多个异步请求,按顺序执行next ES6 方法 参考https://www.cnblogs.com/7q...

网友评论

      本文标题:js异步请求问题

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