【发布时间】:2020-03-06 02:13:49
【问题描述】:
我有包含 url 的数组。首先,我需要同时获取第一个和第二个 url,当其中一个得到解决时,我将获取下一个 url。在不会获取所有 url 时重复。我怎样才能做到这一点 ?
【问题讨论】:
-
发布您的代码,如果您有任何尝试。
-
你会 Promise.race 前两个,然后是一个简单的承诺链,用于后续的 url ......类似于
a.slice.(2).reduce((p,u)=>p.then(r=>fn(u)),Promise.race(a.slice(0,2).map(u=>fn(u))));其中a是你的url数组,fn是处理 url 获取的函数,返回一个在获取 url 时解析的 promise -
或在
async函数中,您可以使用await执行上述操作...更易于阅读const res1=await Promise.race(a.slice(0,2).map(u=>fn(u))); for (let u of a.slice(2)) { let res=await fn(u); }
标签: javascript arrays promise async-await fetch