Javascript Promise.all无法找到父承诺的解决方案

Javascript Promise.all无法找到父承诺的解决方案,javascript,jquery,promise,Javascript,Jquery,Promise,我有一个包含N个html选项的页面。我有一个名为“run_all_ajax”的函数,它循环遍历它们并调用一个ajax函数来填充它们。我想要一个承诺,只有当promise.all在其中完成时,才能从run_all_ajax返回 现在,控制台显示: 全部完成,0 毕竟 0、1、2、3等 这意味着在我添加到promises数组之前,promise.all已解析。我如何纠正这个问题 此外,我想了解一系列承诺在时间方面是如何起作用的。我们是否假设可以循环选择数组并将它们添加到承诺数组中,比使用Promis

我有一个包含N个html选项的页面。我有一个名为“run_all_ajax”的函数,它循环遍历它们并调用一个ajax函数来填充它们。我想要一个承诺,只有当promise.all在其中完成时,才能从run_all_ajax返回

现在,控制台显示:

全部完成,0

毕竟

0、1、2、3等

这意味着在我添加到promises数组之前,promise.all已解析。我如何纠正这个问题

此外,我想了解一系列承诺在时间方面是如何起作用的。我们是否假设可以循环选择数组并将它们添加到承诺数组中,比使用Promise.all()解析所有未完成的承诺更快


Promise.push在请求完成时调用,该请求在
Promise.all之后执行

基本上,您正在调用
Promise.all([])
,它会立即解决问题

这个


也会立即解决。它等于承诺。解决(“完成”)
你在错误的地点(时间)推送承诺。无需创建
新承诺
。您需要的承诺由
$.ajax()返回

我们也要这样做:

promises.push($.ajax({
    //stuff
}));
new Promise(function (resolve, reject) { resolve("Complete"); })
promises.push($.ajax({
    //stuff
}));