最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Asyncawait, "unresolved variable or type await" - Stack Overflow

programmeradmin0浏览0评论
    let usersInAuth0 = [];    
    for (let i = 0; i < 5; i++) {
      const usersInAuth0InPage = await getUsersFromAuth0(i); // error in WebStorm
      if (_.isEmpty(usersInAuth0InPage)){
        return res.status(200).send(usersInAuth0);
      } else {
        usersInAuth0.push(usersInAuth0InPage);
      }
    }

    const getUsersFromAuth0 = async (page) => {
      return await management.getUsers({per_page:100, page: page})
    }

Trying to use async/await. From the auth0 management API you can only get 100 user per page so I'm making several request until I have all users.

WebStorm gives the warning (on line 3): "unresolved variable or type await".

How am I suppose to use async/await in this situation?

    let usersInAuth0 = [];    
    for (let i = 0; i < 5; i++) {
      const usersInAuth0InPage = await getUsersFromAuth0(i); // error in WebStorm
      if (_.isEmpty(usersInAuth0InPage)){
        return res.status(200).send(usersInAuth0);
      } else {
        usersInAuth0.push(usersInAuth0InPage);
      }
    }

    const getUsersFromAuth0 = async (page) => {
      return await management.getUsers({per_page:100, page: page})
    }

Trying to use async/await. From the auth0 management API you can only get 100 user per page so I'm making several request until I have all users.

WebStorm gives the warning (on line 3): "unresolved variable or type await".

How am I suppose to use async/await in this situation?

Share Improve this question edited Apr 15, 2018 at 22:18 LazyOne 166k48 gold badges414 silver badges415 bronze badges asked Apr 15, 2018 at 19:38 JoeJoe 4,27432 gold badges106 silver badges180 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 7

In order to use await, the function it's inside needs to be async. For example:

(async () => {
  let usersInAuth0 = [];    
  for (let i = 0; i < 5; i++) {
    const usersInAuth0InPage = await getUsersFromAuth0(i); // error in webstorm
    if (_.isEmpty(usersInAuth0InPage)){
      return res.status(200).send(usersInAuth0);
    } else {
      usersInAuth0.push(usersInAuth0InPage);
    }
  }

  const getUsersFromAuth0 = page => management.getUsers({per_page:100, page: page});
})();

https://codereviewvideos./blog/unresolved-variable-type-await/

Note that since management.getUsers returns a Promise, you don't need to make getUsersFromAuth0 async - just return the promise and await its resolution higher up.

Because async functions return promises, you'll need to make sure that whatever consumes this whole code block is able to handle the its return value being a promise. (your return res.status(200).send(usersInAuth0); won't actually return that value - the function will return a promise that resolves to that value, should the conditional it's inside be fulfilled)

发布评论

评论列表(0)

  1. 暂无评论