我从Axios AJAX库中找到了这个例子,但是Promises.all()
也是如此。Promises.all如何确保所有承诺都可用?
到目前为止,我读过你可以使用Promises.all()
来检查是否已经解决了一系列承诺中的所有承诺。
这真的很整齐,但如果你推动承诺并在下一个承诺被推之前解决,会发生什么?
我猜测我的平均AJAX调用的开销至少为50毫秒,推送将始终发生在任何ajax请求之前,但只是说为此授予并不真正感觉正确。
这有2级的解决方案,我能想到的:
使用计数,以保证双方(在thise情况下)AJAX请求是
阵列英寸检查存在的实际函数名称。
如何是别人处理这个或者是大多数人只是满足于这两个AJAX请求的希望推前一个人可以解决的速度不够快。
axios.all([getUserAccount(), getUserPermissions()])
.then(axios.spread(function (acct, perms) {
// Both requests are now complete
}));
这是不是很清楚你问的。你是否在动态构建承诺数组?或者你想知道这些请求是否可以在包装之前完成? – Nit
是的,这些承诺正从多个地方推出。比方说,一个单一的承诺一直在推动,而我期望2个承诺,那么在理论上这个承诺可能在第二个承诺被推之前触发一个承诺?如果是这种情况,那么需要有一种机制来事先检查这一点吗? –
您不需要预先检查的机制。 'Promise.all'从一系列承诺中做出单一承诺。你是什么意思,他们被推到不同的地方 –