最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

新的API调用用于在阵列中的每个值

运维笔记admin6浏览0评论

新的API调用用于在阵列中的每个值

新的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)

  1. 暂无评论