let promise = new Promise(resolve => {
console.log('Promise');
resolve();
});
promise.then(function(){
console.log('resolved');
});
console.log('hello~');

打印结果一次为Promise hello~ resolved

Promise 新建后立即执行,所以首先输出的是Promise,然后,then方法指定的回调函数,将在当前脚本所有同步任务执行完才会执行,所以resolved最后输出

let promise=new Promise(resolve=>{

resolve();

console.log('promise');//1

})

console.log(promise);//2

setTimeout(function(){

console.log('hello');//4

})

promise.then(function(){

console.log('resolved');//3

})

//then和setTimeout不都是异步操作吗,为什么hello还是最后输出呢?

then和setTimeout确实都是异步的,但是这里又涉及到异步的宏任务和微任务,setTimeout是宏任务,Promise整体是微任务,主线程执行完了之后先从微任务栈里面获取微任务执行,没有微任务了,就去宏任务栈里面获取宏任务执行,微任务是比宏任务先执行的,所以先打印resolved在打印hello

最新文章

  1. MacOS平台下@rpath在动态链接库中的应用
  2. Azure IaaS限制
  3. mysql乱码解决
  4. 简单的哈希表实现 C语言
  5. 2016国产恐怖惊悚《诡娃》HD720P.国语中字
  6. JS操作DOM
  7. 美国VPS - DigitalOcean 推荐创业团队使用
  8. intel安装mac os
  9. Android05-UI02布局,自定义控件,ListView
  10. ByteBuffer常用方法详解
  11. 使用zxing生成二维码 - servlet形式
  12. 使用Java注解开发自动生成SQL
  13. 一个普通底层.NET程序员关于职场瓶颈期的思考,辗转自我提升/跳槽/转行之间
  14. vue 自定义指令directive
  15. 三、Html常用标签
  16. 如何将一个excel表格的数据匹配到另一个表中
  17. Python之参数类型、变量
  18. BTrace学习总结
  19. MongoDB安装、CURD操作、使用场景分析总结(1)
  20. iotop监控磁盘动态安装

热门文章

  1. 八大排序算法~冒泡排序【加变量flag的作用】
  2. 锁屏面试题百日百刷-java大厂八股文(day3)
  3. 记一次lombok踩坑记
  4. Beautiful Soup4.4.0中文官方文档!最权威的参考---中文官方文档
  5. nfs(2049)未授权访问
  6. 深度强化学习中稀疏奖励问题Sparse Reward
  7. Hyper-V下Internal vSwitch的配置和Linux虚拟机的SSH连接
  8. 开机时自动启动的AutoHotkey脚本 2019年10月09日
  9. RecyclerView跳转到指定位置的几种种方式
  10. Netty基础招式——ChannelHandler的最佳实践