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 badges1 Answer
Reset to default 7In 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)