是否可以从执行多个get请求的异步/等待函数返回值(数组)? 我是JavaScript的新手,我正在解决我的程序的最后一部分。但是,我在使用async await函数时遇到了一些困难,因为我试图从多个请求中获取和存储数据,并将其推送到一个数组中,以便在函数外部使用。稍后,我将呈现此数组的内容(引号)并将其呈现到浏览器。在我的内部循环中,我能够控制台记录我的数组,但是当我试图返回它或使用函数本身时,我遇到了一个问题。有什么想法吗

是否可以从执行多个get请求的异步/等待函数返回值(数组)? 我是JavaScript的新手,我正在解决我的程序的最后一部分。但是,我在使用async await函数时遇到了一些困难,因为我试图从多个请求中获取和存储数据,并将其推送到一个数组中,以便在函数外部使用。稍后,我将呈现此数组的内容(引号)并将其呈现到浏览器。在我的内部循环中,我能够控制台记录我的数组,但是当我试图返回它或使用函数本身时,我遇到了一个问题。有什么想法吗,javascript,ajax,async-await,Javascript,Ajax,Async Await,我有一个URL数组,我正在使用它进行多个调用,因为我需要数组中的一定数量的项,并且提供的API不会让我在每个响应中获得超过25个引号 const getQuotes = () => { let completeQuotesArray = []; const quotesPromises = urls.map(async url => { const response = await axios.get(url); console.log(response)

我有一个URL数组,我正在使用它进行多个调用,因为我需要数组中的一定数量的项,并且提供的API不会让我在每个响应中获得超过25个引号



const getQuotes = () => {
  let completeQuotesArray = [];
  const quotesPromises = urls.map(async url => {
    const response = await axios.get(url);
    console.log(response);
    return response.data.quotes;
  });
  for (const quotesPromise of quotesPromises) {
    let quotesArray = await quotesPromise;
    for (let i = 0; i < quotesArray.length; i++) {
      let quote = quotesArray[i].body;

      if (quote.length < 150) {
        completeQuotesArray.push(quote);
      }
    } 
  }
  return completeQuotesArray;
}

常量getQuotes=()=>{
让completeQuotesArray=[];
const quotesPromises=url.map(异步url=>{
const response=wait axios.get(url);
控制台日志(响应);
返回response.data.quotes;
});
for(常数quotesPromise of QUOTESPROMIES){
让quotesArray=等待quotesPromise;
for(设i=0;i
以下是一个使用
承诺的示例。提到的所有
都是为了并行请求您的URL:

const quotesPromises=wait Promise.all(url.map(url=>axios.get(url))


代码中有一些附加注释用于解释,并注销响应,以便您可以看到
承诺的内容。所有
都有:)响应数据与您的略有不同,但我相信可以根据您的需要进行调整。我还建议检查以确保承诺拒绝得到处理。

以下是使用
承诺的示例。所有提到的请求您的URL并行:

const quotesPromises=wait Promise.all(url.map(url=>axios.get(url))


代码中有一些附加注释用于解释,并注销响应,以便您可以看到
承诺的内容。所有
都有:)响应数据与您的略有不同,但我相信可以根据您的需要进行调整。我还建议检查以确保承诺拒绝得到处理。

我没有运行您的代码,因此我对我的答案没有100%的信心,但我认为我看到了一个错误:quotesPromises数组实际上不是承诺数组。您正在等待解析每个axios请求,并将实际数据存储在阵列中。因此,当您稍后在for/of循环中再次等待该数据时,这是没有意义的,因为数据已经存在。另外,你能用Promise.all代替async wait吗?谢谢你,玛丽亚,谢谢你的回复。我没有使用Promise.all,我也不确定代码应该如何构造。我可以在我的当前代码中更改什么以便使其工作?我想你说的是我声明quotesArray=WAIT quotesPromise的那一行。这是正确的吗?可能是重复的我没有运行你的代码,所以我对我的答案没有100%的信心,但我想我看到了一个错误:quotesPromises数组,实际上不是承诺数组。您正在等待解析每个axios请求,并将实际数据存储在阵列中。因此,当您稍后在for/of循环中再次等待该数据时,这是没有意义的,因为数据已经存在。另外,你能用Promise.all代替async wait吗?谢谢你,玛丽亚,谢谢你的回复。我没有使用Promise.all,我也不确定代码应该如何构造。我可以在我的当前代码中更改什么以便使其工作?我想你说的是我声明quotesArray=WAIT quotesPromise的那一行。是这样吗?非常感谢你,它看起来会起作用的!真的,谢谢你!!!!非常感谢你,它看起来会起作用的!真的,谢谢你!!!!