从响应中检索请求中使用的变量
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};
}));
}
我正在研究一个基于许多 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};
}));
}