在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 我想使用async/await實現(xiàn)最快回來的請求數(shù)據(jù)最快處理

我想使用async/await實現(xiàn)最快回來的請求數(shù)據(jù)最快處理

我現(xiàn)在要請求多個地方的數(shù)據(jù)并把數(shù)據(jù)渲染在頁面上,希望最快到的數(shù)據(jù)最快顯示在頁面上
之前是用promise寫的

urls.map(function(url) {
    request(url).then(function(data) {
      render(data);
    })
})

現(xiàn)在希望改用async/await寫,看了網(wǎng)上資料時發(fā)現(xiàn)都實現(xiàn)不了

var datas = await Promise.all(urls.map(function(url){
    return request(url);
}))
這個我得等數(shù)據(jù)都回來后才可以顯示頁面
 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寫沒啥區(qū)別,還有別的方法不

回答
編輯回答
陪她鬧

供參考

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

async function fn () {
  // ....
  render(await Promise.race(urls.map(request)))
}

如果是都渲染

urls.forEach(async url => render(await request(url)))
2017年11月19日 19:05