新的API调用用于在阵列中的每个值
我基本上要这样的对象作为结果:
[{ID:5040,requester_id:1234,REQUESTER_NAME: '约翰'},{ID:5046,requester_id:999,REQUESTER_NAME: '吉姆'},{ID:5049,requester_id:543,REQUESTER_NAME: '亚历克斯'}]
这是票的对象,车票有多个属性。
我使用该API具有接收票的电话。没有问题检索此。我从这个API调用得到的信息是这样的:
[{ID:5040,requester_id:1234},{ID:5046,requester_id:999},{ID:5049 requester_id:543}]
基于每个requester_id我需要做的另一API调用中检索请求者的名称。对于requester_id 1234,它给了我这样的:
{requester_id:1234,姓名: '约翰'}
每个请求都需要有自己的API调用来获取这些信息。
如果是的NodeJS异步编程语言,我会做这样的事情:
var tickets = api({ method: 'get', path: '/tickets' });
for (var i=0; i<tickets.length; i++){
var contact = api({ method: 'get', path: '/contact/'+tickets[i].requester_id);
tickets[i].name = contact.name;
}
回答如下:
如果您需要继续之前等待异步请求,那么你可以使用async
/ await
async function loadTicketInfo() {
const tickets = await api({ method: 'get', path: '/tickets' });
for (let i=0; i<tickets.length; i++){
var contact = await api({ method: 'get', path: '/contact/'+tickets[i].requester_id);
tickets[i].name = contact.name;
}
};
虽然,这取决于你希望有多少票拉,这可能是一个相当缓慢的操作。我建议你拉并行所有机票信息,然后在年底结婚的信息了
const ticketInfos = tickets.map(t => api({ method: 'get', path: '/contact/' + t.requester_id));
const infos = await Promise.all(ticketInfos);
tickets.forEach(t => {
const info = infos.find(i => i.requester_id === t.requester_id);
if (info) {
t.requester_name = t.name;
}
});
与本文相关的文章
评论列表(0)
- 暂无评论