繁体   English   中英

等待多个HTTP请求JS

[英]Waiting for multiple HTTP requests JS

我正在尝试向 API 发出 3 个请求,然后使用来自每个 JSON 响应的图像 URL 填充数组“pics”。 一切正常,但由于 JS 的异步特性,当我返回或打印 URL 数组时它是空的。 如何等到所有 3 个图像 URL 都添加到数组中后再返回呢? 我知道 js 承诺和 async/await 但我没有太多运气让它们工作。 任何帮助将不胜感激。

function getPics(){

let json = "";
let pics = [];

for(i=0; i<3; i++){

  var fetch = new FetchStream(someUrl);

  fetch.on("data", function(chunk){
      json = JSON.parse(chunk);
      pics[i] = json.primaryImageSmall;
});

}

console.log(pics);

};

getPics();

你可以为此使用 Promises。

// Create each stream (in for loop or whatever)
const a = fetch('https://jsonplaceholder.typicode.com/todos/1');
const b = fetch('https://jsonplaceholder.typicode.com/todos/2');
const c = fetch('https://jsonplaceholder.typicode.com/todos/3');

// Then wait for all of them to resolve
Promise.all([a, b, c]).then((res) => console.log(res))

检查文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM