Javascript 第二个承诺会等到第一个承诺完成后才开始吗

Javascript 第二个承诺会等到第一个承诺完成后才开始吗,javascript,promise,Javascript,Promise,所以我在一段时间前学习了promise之后正在做一个项目,我现在的项目需要它,但是我被我得到的结果吓坏了 我有两个承诺,promise1和promise2,在promise1中,我有一些循环和数据加载,在promise2中,我有另一个逻辑,它不依赖于promise1的完成来执行。因此,根据我的理解,promise是以不同方式处理这两次处决的最佳方式,这意味着promise1不必在promise2开始之前完成,或者我错了,因为从我的结果来看,我可以看到,promise1必须在promise2启动之

所以我在一段时间前学习了promise之后正在做一个项目,我现在的项目需要它,但是我被我得到的结果吓坏了

我有两个承诺,promise1promise2,在promise1中,我有一些循环和数据加载,在promise2中,我有另一个逻辑,它不依赖于promise1的完成来执行。因此,根据我的理解,promise是以不同方式处理这两次处决的最佳方式,这意味着promise1不必在promise2开始之前完成,或者我错了,因为从我的结果来看,我可以看到,promise1必须在promise2启动之前完成,但是文件中的每一个其他代码都会执行,而不必等待promise1完成,这很好

如果这是promise的默认行为,那么我需要知道如何使这两个promise异步运行而不相互依赖

下面是我的代码示例

let promise1 = new Promise((res, rej) =>{
    for(let i = 0; i < 52435435; i++){

    }
    res('done')
});

let promise2 = new Promise((res, rej) => {
    res('Done second')
})

promise1.then(txt => console.log(txt))
promise2.then(txt => console.log(txt))

console.log('Last console')

您必须阅读有关JS workers池的信息。 您的for循环不会给任何其他任务获得cpu的机会。
使用setTimeout模拟异步进程

您必须了解JS workers pool。 您的for循环不会给任何其他任务获得cpu的机会。
使用setTimeout模拟异步进程

您可能在之后,这允许您同时运行多个异步任务?如果
承诺中没有异步操作,则for循环甚至在定义第二个承诺之前就已完成。如果希望第二个承诺等待第一个承诺,则应使用Promise.all()。在这种情况下,您将能够同时解决这两个问题。没有其他方法可以更改承诺的执行。您可能在之后,这允许您同时运行多个异步任务?如果
承诺中没有异步操作,则for循环甚至在定义第二个承诺之前就完成了。您应该使用Promise.all()如果你想让你的第二个承诺等待第一个承诺。在这种情况下,您将能够同时解决这两个问题。没有其他方法可以改变承诺的执行。
Last console
app.js:12 done
app.js:13 Done second