Reactjs 为异步函数中数组中的每个值进行api调用

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

我有一个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-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
    }
  }));