Jit*_*Jit 2 javascript asynchronous async-await
我是 Nodejs 和基于承诺的请求的新手。我想循环地从远程服务器获取数据,然后从所有获取的数据创建一个 JSON 对象。
const fetch = require('node-fetch');
const users = [];
const ids = await fetch('https://remote-server.com/ids.json');
console.log(ids);
// [1,2,3]
ids.forEach(id => {
var user = await fetch(`https://remote-server.com/user/${id}.json`);
users.push(user);
});
console.log(users);
Run Code Online (Sandbox Code Playgroud)
预期产出
[
{
name: 'user 1',
city: 'abc'
},
{
name: 'user 2',
city: 'pqr'
},
{
name: 'user 3',
city: 'xyz'
}
]
Run Code Online (Sandbox Code Playgroud)
spe*_*der 10
因此要并行启动:
const ids = await fetch('https://remote-server.com/ids.json');
const userPromises = ids.map(id => fetch(`https://remote-server.com/user/${id}.json`));
const users = await Promise.all(userPromises);
Run Code Online (Sandbox Code Playgroud)
按顺序启动:
const users = [];
const ids = await fetch('https://remote-server.com/ids.json');
for(const id of ids){
const user = await fetch(`https://remote-server.com/user/${id}.json`);
users.push(user);
}
Run Code Online (Sandbox Code Playgroud)