作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想做一些类似的事情:
Promise.all([
fetch(url1).then(function(response){ return response.json() }),
fetch(url2).then(function(response){ return response.json() }),
fetch(url3).then(function(response){ return response.json() }),
fetch(url4).then(function(response){ return response.json() })
]).then(allResponses => {
var data1 = allResponses[0];
var data2 = allResponses[1];
var data3 = allResponses[2];
var data4 = allResponses[3];
// process data....
});
上面是 React.js 代码,我想做同样的事情,但是在服务器上使用 Node.js。问题是我没有获取,我有请求(我什至应该使用请求吗?)。 https://github.com/request/request原来是这样用的...
var request = require('request');
request(url1, function (error, response, body) {
});
但是我该如何将 request 与 Promise.all 一起使用呢?因为我想获取多个内容,并且仅在所有内容完成后(但在 Node 中)处理它们,而且我不想使用一堆回调。
最佳答案
更简洁地说,安装node-fetch后,您可以进行解析为json的promise-returning fetch...
const fetch = require('node-fetch');
function fetchJSON(url) {
return fetch(url).then(response => response.json());
}
...从一组 url 构建一系列 Promise...
let urls = [url1, url2, url3, url4];
let promises = urls.map(url => fetchJSON(url));
...当这些 promise 兑现时做点什么...
Promise.all(promises).then(responses => console.log(responses));
关于javascript - 如何在node.js中使用Promise.all和Request?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49580193/
我是一名优秀的程序员,十分优秀!