[英]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.