Reactjs 为异步函数中数组中的每个值进行api调用
我有一个id数组,我正试图迭代该数组,为每个id调用api。然而,我的api调用似乎没有通过,有人能提供一些见解吗 id的数组如下所示:Reactjs 为异步函数中数组中的每个值进行api调用,reactjs,api,asynchronous,use-effect,Reactjs,Api,Asynchronous,Use Effect,我有一个id数组,我正试图迭代该数组,为每个id调用api。然而,我的api调用似乎没有通过,有人能提供一些见解吗 id的数组如下所示: [“provider-e44f1ccd-839c-413b-9559-0d2b359ee541”,“provider-1cd9c1fe-de26-4b44-a1b9-03e6fc103ac4”,“provider-1cd9c1fe-de26-4b44-a1b9-03e6fc103ac4”,“系统”,“系统”,“provider-1cd9c1fe-de26-4b
[“provider-e44f1ccd-839c-413b-9559-0d2b359ee541”,“provider-1cd9c1fe-de26-4b44-a1b9-03e6fc103ac4”,“provider-1cd9c1fe-de26-4b44-a1b9-03e6fc103ac4”,“系统”,“系统”,“provider-1cd9c1fe-de26-4b44-a1b9-03e6fc103ac4”
我的调用函数如下所示:
useEffect(() => {
const loadProvider = async () => {
if(entries.length > 0){
const providerID = entries.map((entry => entry.createdBy))
console.log(providerID)
try{
const results = await api.Providers.get(providerID[+i])
console.log(results, "12345678987654321")
}catch(err){}
}
};
loadProvider();
}, [entries]);
我能够进入try
语句,但当我控制台results
我还尝试在
try
语句中使用map
覆盖条目
,但我的wait
结果变量出现语法错误。providerID
是一个数组。您最好将其重命名为反映这一点的名称。例如,像providerIDs
providerID[+i]
是一个语法错误
如果您想为每个id发出API请求,您必须以某种方式迭代您的providerIDs
数组。您可以使用以下方法来完成此操作:
你可以使用Promise.all和.map
let results = await Promise.all(entries.map(async (entry) => {
try {
const result = await api.Providers.get(entry.createdBy)
return result;
} catch(error) {
//handle errors
}
}));
什么是
i
providerID[+i]
我理解您的解决方案,但我尝试过,它总是给我一个语法错误,这与我将映射放在try语句之外的原因相同。错误表明await是一个保留字
Ah,看起来要使用await
,直接包含它的函数必须是async
。您可以阅读更多关于它的信息。这也给了我同样的错误,它说wait是一个保留字
let results = await Promise.all(entries.map(async (entry) => {
try {
const result = await api.Providers.get(entry.createdBy)
return result;
} catch(error) {
//handle errors
}
}));