查看MDN看起来像values
传递给then()
Promise的回调。all包含按promise顺序的值。例如:
var somePromises = [1, 2, 3, 4, 5].map(Promise.resolve);
return Promise.all(somePromises).then(function(results) {
console.log(results) // is [1, 2, 3, 4, 5] the guaranteed result?
});
谁能引用规范说明values
应该遵循的顺序?
PS:运行这样的代码表明这似乎是对的,尽管这当然没有证据-可能是巧合。
不久, 订单被保留 。
按照您链接到的规范,Promise.all(iterable)
将一个iterable
即支持该[Iterator
接口的对象)作为参数,然后再调用PerformPromiseAll( iterator, constructor, resultCapability)
它,后者iterable
使用循环IteratorStep(iterator)
。
这意味着,如果Promise.all()
严格传递您传递给的迭代器,则一旦传递,它们仍将被订购。
通过Promise.all()Resolve
每个已解析的承诺都有一个内部[[Index]]
插槽的位置来实现解析,该插槽在原始输入中标记承诺的索引。
所有这一切意味着,只要严格按照输入顺序对输出进行严格排序(例如,数组)。
您可以在下面的小提琴(ES6)中看到这一点:
// Used to display results
const write = msg => {
document.body.appendChild(document.createElement('div')).innerHTML = msg;
};
// Different speed async operations
const slow = new Promise(resolve => {
setTimeout(resolve, 200, 'slow');
});
const instant = 'instant';
const quick = new Promise(resolve => {
setTimeout(resolve, 50, 'quick');
});
// The order is preserved regardless of what resolved first
Promise.all([slow, instant, quick]).then(responses => {
responses.map(response => write(response));
});
我正在尝试用Async/Await进行一些动态数据建模。我有两个endpoint,第一个将返回对象数组。数组中的这些实体具有从另一个endpoint获取的子实体。 所以我试图实现的结果类似于: 这就是我试图解决这个问题的方法: 我所期待的: 我得到的是: 我不知何故监督了我的承诺.所有链,所以我只是在我的数据对象中获得解析的承诺,有没有关于如何在其中获得普通数据的提示?或者如何将一个数组解析的承诺
我对node.js比较熟悉,编写一个程序时需要承诺异步API调用。我有一个关于执行一些示例代码的问题,这是我在研究中偶然发现的。 下面的代码(根据我的理解)将访问一个API,等待响应,然后将该响应解析为承诺。这是迭代完成的,每个创建的承诺都被传递到一组承诺中。最终,对许诺数组调用promise.all()和.then(),将执行更多代码来迭代数组并将图像添加到页面中。 这里我不理解的是promis
问题内容: 使用节点4.x。当您有什么正确的方法来解析数据并将其传递给下一个? 我想做这样的事情: 但是我不确定如何将数据发送到第二个。我不能先用。我知道我可以做到这一点: 但这似乎不是执行此操作的正确方法…正确的方法是什么? 问题答案: 但这似乎不是正确的方法。 确实,这是执行此操作的正确方法(或者至少 是 执行此操作 的 正确方法)。这是Promise的关键方面,它们是一个管道,数据可以由管道
本文向大家介绍python方法解析顺序?相关面试题,主要包含被问及python方法解析顺序?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: Python的方法解析顺序优先级从高到低为:实例本身类继承类(继承关系越近,越先定义,优先级越高)
我对不同的API(由delayedPromise函数模拟)执行多个请求,每个请求都需要一定的时间才能完成。如果其中一个满足,我返回它解析的值,就这样。我现在一个接一个地做这些,因为第一个请求是最准确的,而第二个则不太准确,等等。因此,如果第一个请求失败,第二个满足,我将返回第二个请求 为了加快速度,我考虑将这些请求并行化。为了实现这一点,我正在创建一个数组,它持有promise,它等待第一个元素的
Demo 从日志输出来看 先执行了p1后执行p2, 问题 1.Promise.all的参数接受一个Promise数组, Promise数组中每一个Promise的执行函数的 开始执行顺序是怎样的? 是按照数组中的顺序 开始执行每一个Promise的执行函数吗?从实际日志输出来看 好像是数组的倒序 (注意问题问题的是Promise的执行函数的 开始执行顺序,并不是Promise的完成顺序,仅仅是执行