【发布时间】:2018-07-22 00:50:04
【问题描述】:
我正在使用 ES6 JavaScript 并根据返回顺序进行 API 调用。 http客户端是axios。一位同事指示我使用Promise.all()。它有效并且我知道它可以保证,但我不确定如何它可以保证结果是有序的。我的理解是不保证异步请求!我的简化代码是:
Promise.all([
axios.get('/cars'),
axios.get('/road-conditions')
]).then(values => {
this.cars = values[0]
this.roadConditions = values[1]
})
我想了解如何 values 知道哪个请求是哪个。这是 Axios 的特殊功能吗?
【问题讨论】:
-
Promise.all以与传递给它的承诺数组相同的顺序为您提供解析值。这里不能保证请求到达服务器的顺序。 -
感谢您的回复,我明白数组中的顺序是受尊重的,我只是不清楚promise如何保证顺序。
-
Promise.all 一直等到数组中的所有 promise 都已履行,然后才会履行。因此,无论收到的顺序如何,您都会按照指定的顺序获得答案。
标签: javascript ecmascript-6 promise axios