Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
异步函数中的同步fetch(),并在使用JavaScript完成所有操作后返回_Javascript_Promise - Fatal编程技术网

异步函数中的同步fetch(),并在使用JavaScript完成所有操作后返回

异步函数中的同步fetch(),并在使用JavaScript完成所有操作后返回,javascript,promise,Javascript,Promise,我正在编写一个函数,其中我希望异步拍摄2次抓取,但是,我会等到所有抓取完成后,函数才会返回 如果我将await放在每个fetch()的前面,则这两个回迁将按顺序发出,但如果我没有await,则函数将在所有两个回迁完成之前返回 我想知道是否有一个标准的方法可以很好地完成这个功能。以下是我的示例代码: async function sendRequest() { fetch(url1); fetch(url2); return something; } 使用所有承诺。它将异步运行所有

我正在编写一个函数,其中我希望异步拍摄2次抓取,但是,我会等到所有抓取完成后,函数才会返回

如果我将
await
放在每个
fetch()
的前面,则这两个回迁将按顺序发出,但如果我没有
await
,则函数将在所有两个回迁完成之前返回

我想知道是否有一个标准的方法可以很好地完成这个功能。以下是我的示例代码:

async function sendRequest() {
  fetch(url1);
  fetch(url2);

  return something;
}

使用所有承诺。它将异步运行所有承诺,并等待所有承诺完成

async function sendRequest() {
  try {
     let result = await Promise.all([
        fetch(url1);
        fetch(url2);
     ])
  } catch(err) {
     console.log(err); // TypeError: failed to fetch
  }
  console.log(result);

  return something;
}

注意:如果只有一个承诺失败,那么每个其他承诺也会失败

它应该用try…catch块或提供catch分支到hand错误来包装。