我现在要请求多个地方的数据并把数据渲染在页面上,希望最快到的数据最快显示在页面上之前是用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)))
添加回答
举报
0/150
提交
取消