我想澄清这一点,因为文件不太清楚;
Q1:是Promise.all(iterable)处理所有的承诺顺序或并行?或者,更具体地说,它是否相当于运行链式承诺
p1.then(p2).then(p3).then(p4).then(p5)....
Run Code Online (Sandbox Code Playgroud)
或者是一些其他类型的算法的所有p1,p2,p3,p4,p5,等是被称为在同一时间(并行)和结果尽快返回所有的决心(或一个拒绝)?
Q2:如果Promise.all并行运行,是否有一种方便的方式来运行可迭代的顺序?
注意:我不想使用Q或Bluebird,而是使用所有原生ES6规范.
我使用axios来执行这样的HTTP帖子:
import axios from 'axios'
params = {'HTTP_CONTENT_LANGUAGE': self.language}
headers = {'header1': value}
axios.post(url, params, headers)
Run Code Online (Sandbox Code Playgroud)
它是否正确?或者我应该这样做:
__CODE__
我需要使用axios处理未知数量的AJAX请求(1个或更多),我不知道如何处理响应.我想要的东西是:
let urlArray = [] // unknown # of urls (1 or more)
axios.all(urlArray)
.then(axios.spread(function () {
let temp = [];
for (let i = 0; i < arguments[i].length; i++)
temp.push(arguments[i].data);
}));
Run Code Online (Sandbox Code Playgroud)
其中arguments包含axios发送的回调响应.问题是arguments包含给定的字符串URL而不是实际的响应.我该如何解决这个问题?