es6中的Promise可以定义一个异步回调方法,那么它和setTimeout相比怎么样呢?看下面代码:

答案是3,4,6,5,1,2。

这里的主要问题是应该是Promise.then等setTimeout呢?还是setTimeout等Promise.then呢?

在没有发生等待的情况下,Promise.then在同步事件执行完成之后就会执行,也就是所有同步事件完成后执行then()。至于setTimeout和setInterval就属于事件循环了,它们的先后顺序决定于谁先定义。

上面代码中的then()方法是最后调用的,因为Promise里面用了setTimeout,就会参与事件循环了,因为这个setTimeout是最后定义的,因此5是最后输出的。

其他文章

0
我要评论

评论

返回
×

我要评论

回复:

昵称:(昵称不超过20个字)

图片:

提交
还可以输入500个字