Lodash的承诺

Chr*_*eek 3 javascript lodash

我正在尝试使用_.times生成用户列表,但得到了一组Promised对象。如何输出普通对象数组?

const createUser = async () => ({

});

const users = [];

_.times(5, () => users.push(createUser()));

Promise.all(users);
Run Code Online (Sandbox Code Playgroud)

输出量

[ Promise { { username: 'Armando', password: '8cw0W7Jpm0LSSS9' } },
  Promise { { username: 'Lauren', password: '9oFCK4rqLj_DGol' } },
  Promise { { username: 'Frederique', password: 'JXGOsjCCOMFBYFd' } },
  Promise { { username: 'Otilia', password: 'DnxArNIsjaVoMB2' } },
  Promise { { username: 'Elisabeth', password: 'kZbSlg7bVWiagFT' } } ]
Run Code Online (Sandbox Code Playgroud)

预期

[
  { username: 'Armando', password: '8cw0W7Jpm0LSSS9' },
  { username: 'Lauren', password: '9oFCK4rqLj_DGol' },
  { username: 'Frederique', password: 'JXGOsjCCOMFBYFd' },
  { username: 'Otilia', password: 'DnxArNIsjaVoMB2' },
  { username: 'Elisabeth', password: 'kZbSlg7bVWiagFT' }
]
Run Code Online (Sandbox Code Playgroud)

Jon*_*lms 5

您可以在的then回调中获取它Promise.all

Promise.all(users).then(result => {
  console.log(result);
});
Run Code Online (Sandbox Code Playgroud)


dr_*_*rto 5

只是await结果Promise.all

const users = await Promise.all(userPromises)
Run Code Online (Sandbox Code Playgroud)

编辑

使用await当然只能在一个async函数内工作——感谢在评论 Olian02 中指出这一点。