首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用循环内部异步等待提供eslint错误

使用循环内部异步等待提供eslint错误
EN

Stack Overflow用户
提问于 2020-08-03 21:25:14
回答 1查看 887关注 0票数 1

我有下面的代码,它可以工作,我目前配置了eslint,并得到了以下错误

代码语言:javascript
运行
复制
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)

守则的理念如下:

全局帐户的

  1. 循环,其中包含帐户列表(首先用于)

  1. 准备欧盟区域

请求

  1. 为美国地区

准备请求

  1. 运行异步请求,从EU

获取用户

值的

  1. 循环,如果找到url,则返回与4-5相同的6-7,但对于美国区域。

异步函数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.allrace,因为我需要运行欧盟和美国的代码

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-03 21:43:57

除非您明确地希望对所期待的承诺进行串行循环,否则应该使用Promise.allPromise.race (或者当所有主流浏览器都支持它时使用Promise.any() )。他们会同时履行你的诺言。

例如:

代码语言:javascript
运行
复制
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
        }
    }
}

如果你真的想做一个串行循环,那么你所拥有的就会起作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63237153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档