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

我想使用async/await实现最快回来的请求数据最快处理

我想使用async/await实现最快回来的请求数据最快处理

月关宝盒 2019-03-15 14:15:58
我现在要请求多个地方的数据并把数据渲染在页面上,希望最快到的数据最快显示在页面上之前是用promise写的urls.map(function(url) {    request(url).then(function(data) {      render(data);    })})现在希望改用async/await写,看了网上资料时发现都实现不了var datas = await Promise.all(urls.map(function(url){    return request(url);}))这个我得等数据都回来后才可以显示页面 var promises = urls.map(function (url) {    return request(promises);}) for(var i =0; i < promises .length;i++) {   let data = await promises    render(data)}这个是第一个请求最早处理,我获取不了最快的那个为了获取最快那个我改成这样的 var promises = urls.map(function (url) {    return request(promises);}) for(var i =0; i < promises .length;i++) {   let data = await promises.then(function(data) {   render(data)})   }但是这样写还是摆脱不了then,和用promise写没啥区别,还有别的方法不
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

供参考


如果是拿到第一个后扔掉其它的


async function fn () {

  // ....

  render(await Promise.race(urls.map(request)))

}

如果是都渲染


urls.forEach(async url => render(await request(url)))


查看完整回答
反对 回复 2019-03-17
  • 1 回答
  • 0 关注
  • 551 浏览
慕课专栏
更多

添加回答

举报

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