从响应中检索请求中使用的变量

Retrieve variable used in request from response

我正在研究一个基于许多 ID 发出一定数量请求的函数。然后它选择结果元素的 id。

我想在响应中传播我用于请求的 ID。像这样:(仅供说明)

const fetchSomeIds = async (ids, Service) => {
    const requests = ids.map(id => { return { url: `/something/` + id + `/something-else`}});
    const responses = await Promise.all(requests.map(
        request => Service.get(request.url)
    ));
    const someIds = responses.map(element => {return {id: id/*(used in request)*/, some_id: element.data.some_id};});
    return someIds;
};

因此,如果我使用 ids=[27,54],我会得到 some_id=133 和 some_id=32。响应应如下所示:

[
  { 
    "id": 27,
    "some_id": 133
  },
  {
    "id": 54,
    "some_id": 32
  }
]

起,您可以在同一索引处访问原始数组:

const someIds = responses.map((element, index) => {
   return {id: ids[index], some_id: element.data.some_id};
});

但是,将处理全部放在一个 map 回调中可能会更简单:

function fetchSomeIds(ids, Service) {
    return Promise.all(ids.map(async id => {
        const request = {url: `/something/` + id + `/something-else`};
        const response = await Service.get(request.url);
        const element = response;
        return {id, some_id: element.data.some_id};
    }));
}