[英]React Fetch Inside a function Map
我正在尝试对 MAP 中捕获的每个项目发出请求,但我想在转到 MAP 中的另一个 object 之前等待响应。目前我的代码同时发出所有请求,最终导致后端崩溃。
function RequestComputers (Computers) {
Computers.map((e) => {
Details(e, data.region, data.apitoken).then(data => {
if(data)
setContent2((array) => [...array, data[0]])} ).catch(error => console.log(error))
})
}
const Details = async (Computer, region, token) => {
try {
const test = {'region': region, 'apitoken': token, 'product': '1', 'computer': Computer}
const response = await fetch('url', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(test)
}
)
const data = await response.json()
return data
} catch(error) {
console.log(error)
}
}
我需要等待获取响应,然后再发出另一个获取请求
您可以使用一个简单的 for 循环:
async function RequestComputers (Computers) {
for ( const computer of Computers ) {
try {
const data = await Details(computer, data.region, data.apitoken);
if ( data ) {
setContent2((array) => [...array, data[0]]);
}
} catch(error){
console.log(error);
}
}
}
我认为您可以使用 .forEach 并等待详细信息:
async function RequestComputers (Computers) { Computer.forEach((computer) => { try { const data = await Details(computer, data.region, data.apitoken); if ( data ) { setContent2((array) => [...array, data[0]]); } } catch(error){ console.log(error); } }) }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.