我有下面的代码,它可以工作,我目前配置了eslint,并得到了以下错误
1. ESLint: iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations. (no-restricted-syntax)
2. ESLint: Unexpected `await` inside a loop. (no-await-in-loop)
守则的理念如下:
全局帐户的
请求
准备请求
获取用户
值的
异步函数acount(全局){ //这里我得到了(全局帐户){ //创建用户请求的第一个eslint错误迭代器/生成器- region EU usersEUReq = getUsers(account.guid,here 1);//创建http请求获取用户区域US let usersUSReq = getUsers(account.guid,Regi.2);const usersEU =等待axios(usersEUReq);//在这里,我得到了承诺的响应,并应在其上循环获得usersEU.data的(const子){ if ( sub.url ) { return sub.url}} const usersUS = await (UsersUSBReq)的获取URL;(usersUS.sub的const子){ if ( sub.url ) {返回sub.url }
顺便说一句,我不能使用Promise.all
或race
,因为我需要运行欧盟和美国的代码
发布于 2020-08-03 21:43:57
除非您明确地希望对所期待的承诺进行串行循环,否则应该使用Promise.all
或Promise.race
(或者当所有主流浏览器都支持它时使用Promise.any()
)。他们会同时履行你的诺言。
例如:
function getuserdata(account) {
return [region.1, region.2].map(_region => getUsers(account.guid, _region)).map(axios);
}
async function acount(global) {
let userdata = await Promise.all(global.flatMap(getuserdata))
for (const sub of userdata) {
if (sub.url) {
return sub.url
}
}
}
如果你真的想做一个串行循环,那么你所拥有的就会起作用。
https://stackoverflow.com/questions/63237153
复制相似问题