Javascript JSFetchAPI:如何使用一个异步函数从多个文件中获取内容?

Javascript JSFetchAPI:如何使用一个异步函数从多个文件中获取内容?,javascript,asynchronous,fetch-api,Javascript,Asynchronous,Fetch Api,我想用一个异步函数从多个文件中获取数据。目前我的代码如下: const fetchExternalData = async() => { const resp1 = await fetch('file1.txt'); const resp2 = await fetch('file2.txt'); return resp1.text(); // How could I return the content from file2.txt as well? } fetchEx

我想用一个异步函数从多个文件中获取数据。目前我的代码如下:

const fetchExternalData = async() => {
   const resp1 = await fetch('file1.txt');
   const resp2 = await fetch('file2.txt');
   return resp1.text(); // How could I return the content from file2.txt as well?
}

fetchExternalData().then((response) => {
  console.log(response); // Data from file1.txt
  // How could I access the data from file2.txt?
}

const fetchExternalData = async() => {
   const resp1 = await fetch('file1.txt');
   const resp2 = await fetch('file2.txt');
   return ({res1: resp1.text(), res2: resp2.text()});
}

通过这种方式,我可以处理第一个文件中的数据,但如何通过这种方式访问更多文件中的数据?希望这个问题是可以理解的。任何帮助都将不胜感激。

通过将其放入对象中返回多个值。像这样:

const fetchExternalData = async() => {
   const resp1 = await fetch('file1.txt');
   const resp2 = await fetch('file2.txt');
   return resp1.text(); // How could I return the content from file2.txt as well?
}

fetchExternalData().then((response) => {
  console.log(response); // Data from file1.txt
  // How could I access the data from file2.txt?
}

const fetchExternalData = async() => {
   const resp1 = await fetch('file1.txt');
   const resp2 = await fetch('file2.txt');
   return ({res1: resp1.text(), res2: resp2.text()});
}

通过将多个值放入对象中来返回多个值。像这样:

const fetchExternalData = async() => {
   const resp1 = await fetch('file1.txt');
   const resp2 = await fetch('file2.txt');
   return resp1.text(); // How could I return the content from file2.txt as well?
}

fetchExternalData().then((response) => {
  console.log(response); // Data from file1.txt
  // How could I access the data from file2.txt?
}

const fetchExternalData = async() => {
   const resp1 = await fetch('file1.txt');
   const resp2 = await fetch('file2.txt');
   return ({res1: resp1.text(), res2: resp2.text()});
}

以下是一种方法,您可以使用Promise来实现这一点。所有:

常量fetchExternalData==>{ 回报你的承诺[ fetchfile1.txt, fetchfile2.txt ] 然后 结果=>Promise.all results.mapreult=>result.text } 然后,调用fetchExternalData函数时,您将获得一个包含两个文件中数据的项目数组:

fetchExternalData.then 响应=>{ //[文件1数据,文件2数据] } 下面是一个例子:

常量fetchExternalData==>{ 回报你的承诺[ Fetchhttps://jsonplaceholder.typicode.com/todos/1, Fetchhttps://jsonplaceholder.typicode.com/todos/2 ].thenresults=>{ 返回Promise.allresults.mapreult=>result.json; }; }; 获取外部数据 .thenresult=>{ //console.logresult; }
.catchconsole.error 以下是一种方法,您可以使用Promise来实现这一点。所有:

常量fetchExternalData==>{ 回报你的承诺[ fetchfile1.txt, fetchfile2.txt ] 然后 结果=>Promise.all results.mapreult=>result.text } 然后,调用fetchExternalData函数时,您将获得一个包含两个文件中数据的项目数组:

fetchExternalData.then 响应=>{ //[文件1数据,文件2数据] } 下面是一个例子:

常量fetchExternalData==>{ 回报你的承诺[ Fetchhttps://jsonplaceholder.typicode.com/todos/1, Fetchhttps://jsonplaceholder.typicode.com/todos/2 ].thenresults=>{ 返回Promise.allresults.mapreult=>result.json; }; }; 获取外部数据 .thenresult=>{ //console.logresult; }
.catchconsole.error;返回结果数组:返回[resp1.text,resp2.text],然后使用Promise.all等待them@slebetman不回答评论中的问题返回一系列结果:返回[resp1.text,resp2.text],然后使用Promise.all等待them@slebetman不要在评论中回答问题谢谢你的支持!我选择了@goto1的答案,因为它更灵活,但是你的答案也很有用!顺便说一下,resp1.text将返回一个承诺,因此您需要执行类似于obj.rest1的操作。然后。。。以获得此承诺的价值。感谢您的支持!我选择了@goto1的答案,因为它更灵活,但是你的答案也很有用!顺便说一下,resp1.text将返回一个承诺,因此您需要执行类似于obj.rest1的操作。然后。。。以获得此承诺所带来的价值。非常感谢!这样,我可以使用结果[0]访问结果数组。有没有办法将键添加到结果数组中,这样我就可以使用result['key1']访问它?@martin hinze,那么你的意思是返回一个对象?见edit@martin-hinze和keys没有,但是您可以像在我的第二个示例中那样返回一个对象,或者您可以使用所需的键返回一个对象数组,并且您必须使用array.find方法来查找相应的项,您将无法像您希望的那样执行result[key1],谢谢您的编辑,这超出了我的期望。我会仔细研究你的代码,从中学习很多@martin hinze如果有任何问题或者有一部分您不理解,请告诉我,我将编辑该问题并提供更多评论非常感谢!这样,我可以使用结果[0]访问结果数组。有没有办法将键添加到结果数组中,这样我就可以使用result['key1']访问它?@martin hinze,那么你的意思是返回一个对象?见edit@martin-hinze和keys没有,但是您可以像在我的第二个示例中那样返回一个对象,或者您可以使用所需的键返回一个对象数组,并且您必须使用array.find方法来查找相应的项,您将无法像您希望的那样执行result[key1],谢谢您的编辑,这超出了我的期望。我会仔细研究你的代码,从中学习很多@martin hinze如果有任何问题或者有一部分您不理解,请告诉我,我将编辑问题并提供更多评论