同样的promise,调用方法不一样,执行顺序不一样

简介: 在测试两个不同的代码时发现的。 其实也理解,一个是新建一个空的promise,另一个是新建的promise马上执行,去分支resolve状态, 当然就空的在后。 //setImmediate(function() { // console.

在测试两个不同的代码时发现的。

其实也理解,一个是新建一个空的promise,另一个是新建的promise马上执行,去分支resolve状态,

当然就空的在后。

<script>
    //setImmediate(function() {
    //    console.log(1);
    //}, 0);
    setTimeout(function() {
        console.log(2);
    }, 0);
    Promise.resolve().then(function() {
        console.log('promise');
        setTimeout(function() {
            console.log('setTimeout in microtask');
        }, 0);
    }).then(function() {
        console.log('promise2');
    });
    new Promise(function(resolve) {
        console.log(3);
        resolve();
        console.log(4);
    }).then(function() {
        console.log(5);
    });
    
    console.log(6);
    //process.nextTick(function() {
    //    console.log(7);
    //});
    console.log(8);
    

</script>

输出:

3
test.html:69 4
test.html:74 6
test.html:78 8
test.html:59 promise
test.html:71 5
test.html:64 promise2
test.html:56 2
test.html:61 setTimeout in microtask

 

目录
相关文章
|
6月前
|
前端开发
在什么场景下适合使用 Promise.race() 方法?
在什么场景下适合使用 Promise.race() 方法?
333 68
|
6月前
|
前端开发
如何使用 Promise 的 all 方法?
如何使用 Promise 的 all 方法?
584 63
|
6月前
|
前端开发
如何使用 Promise 的 race 方法?
如何使用 Promise 的 race 方法?
340 62
|
存储 前端开发
除了 Promise.all(),还有哪些方法可以处理异步并发操作?
在上述示例中,`concurrentPromises` 函数接受一个Promise数组和最大并发数作为参数,通过手动控制并发执行的Promise数量,实现了对异步操作的并发控制,并在所有Promise完成后返回结果数组。
|
12月前
|
前端开发 索引
Promise.all() 方法的参数可以是什么类型?
综上所述,`Promise.all()` 方法的参数类型较为灵活,但无论使用哪种类型的可迭代对象作为参数,其核心的异步操作处理逻辑和成功失败的判断机制都是一致的,都是为了方便地处理多个异步操作的并发执行和结果汇总。
|
9月前
|
前端开发
在Promise链中,如果前面的catch方法没有捕获到错误,后面的catch方法还会执行吗?
在Promise链中,如果前面的catch方法没有捕获到错误,后面的catch方法还会执行吗?
255 58
|
9月前
|
前端开发
在Promise链中是否可以多次使用catch方法?
在Promise链中是否可以多次使用catch方法?
231 58
|
9月前
|
前端开发
Promise有哪些常用的方法?
Promise有哪些常用的方法?
226 58
|
9月前
|
前端开发
如何在不使用catch方法的情况下处理Promise.reject()抛出的错误?
如何在不使用catch方法的情况下处理Promise.reject()抛出的错误?
340 57
|
10月前
|
前端开发 JavaScript
除了使用Polyfill,还有其他解决Promise.allSettled()兼容性问题的方法吗?
除了使用Polyfill,还有其他解决Promise.allSettled()兼容性问题的方法吗?
264 81