如何将 url_user
数组作为 Promise.all 中的参数传递?
我使用 Node.js 和 Express。
url_project = 'https://api.projects'
url_user = [
'https://api.users/1',
'https://api.users/2',
'https://api.users/3',
'https://api.users/4',
'https://api.users/5',
'https://api.users/6'
]
index.js
<div>
<%= projectsApi.id %>
<% for (var i = 0; i < usersApi.length; i++) { %>
<%= usersApi[i].id %>
<% } %>
</div>
server.js
var rp = require('request-promise');
Promise
.all([rp({uri: url_project, json:true}), rp({uri: url_user, json:true})]) //This where I want to edit
.then(([projectsApi, usersApi]) => {
res.render('index', {projectsApi, usersApi});
}).catch(err => {
console.log(err);
res.sendStatus(500);
});
当我输入 Promise.all([rp({uri: url_project, json:true}), rp({uri: url_user[0], json:true})])
时,它有效,因为 url_user[0]
不是数组。
但是我想传递数组 url_user
中的所有数据。
最佳答案
您可以使用map和 spread operator :
url_project = 'https://api.projects'
url_user = [
'https://api.users/1',
'https://api.users/2',
'https://api.users/3',
'https://api.users/4',
'https://api.users/5',
'https://api.users/6'
]
const promises = [
rp({uri: url_project, json:true}),
...url_user.map(value => rp({uri: value, json:true})
];
Promise.all(promises)
.then(values => {
console.log(values);
// Adjust your response
// ...
})
.catch(err => {
console.log(err);
res.sendStatus(500);
});
关于node.js - 如何在 Promise.all 中将 URL 中的数组作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59709361/