admin管理员组

文章数量:1415145

    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)

本文标签: javascriptAsyncAwaitquotunresolved variable or type awaitquotStack Overflow