当前位置: 首页 > news >正文

宣传型网站宜昌小程序开发公司

宣传型网站,宜昌小程序开发公司,wordpress投稿收费吗,怎么知道网站的空间服务商宏任务和微任务 JS为微任务和宏任务简单介绍任务执行顺序例子任务执行顺序简单例子 关于new Promise实例化过程的例子 JS为微任务和宏任务简单介绍 js是单线程的#xff0c;但是分同步异步微任务和宏任务皆为异步任务#xff0c;它们都属于一个队列宏任务一般是#xff1a;… 宏任务和微任务 JS为微任务和宏任务简单介绍任务执行顺序例子任务执行顺序简单例子 关于new Promise实例化过程的例子 JS为微任务和宏任务简单介绍 js是单线程的但是分同步异步微任务和宏任务皆为异步任务它们都属于一个队列宏任务一般是script、setTimeout、setInterval、postMessage微任务Promise.then ES6先执行同步再执行异步异步遇到微任务先执行微任务执行完后如果没有微任务就执行下一个宏任务如果有微任务就按顺序一个一个执行微任务 任务执行顺序 同步任务 —— 异步任务中微任务 —— 异步任务中宏任务 任务执行顺序例子 function doFoo(fn) {this.code 404;fn(); }function f() {setTimeout(() {console.log( this); // [object window]语句3this.code 401; // 语句4}, 0)console.log( this.code ); // 404语句2 }let obj {code: 200,foo: f };var code 500;doFoo( obj.foo ); // 语句1 setTimeout((){console.log(obj.code)}, 0); // 200语句5 setTimeout((){console.log(window.code)}, 0); // 401语句6分析 按照先同步再异步的顺序从上往下编译执行第一个执行doF( obj.foo )任务,将obj.foo作为参数传入到函数doFoo当中此时作为调用者的对象还是windowdoFoo函数中this.code 404;将window对象下的code值修改为404之后doFoo函数继续调用 f() 函数f()函数中的setTimeout()是宏任务先放入宏任务列表里不执行反而直接执行后面的 console.log( this.code ); 此时调用该函数的对象还是window所以打印出404继续接下来的任务将两个setTimeout()都放入宏任务列表执行第一个放入的setTimeout()任务执行其中this.code401,将window对象下的code的值又修改为401执行第二个放入的setTimeout()任务执行console.log(obj.code)整个过程中obj对象的code一直没被修改所以还是200执行第三个放入的setTimeout()任务执行console.log(window.code),打印出401 任务执行顺序简单例子 console.log(1) setTimeout(function() {console.log(2) }, 0) const p new Promise((resolve, reject) {resolve(4) }) p.then(data {console.log(data) }) console.log(3) //1342分析 先同步再异步从上往下编译执行首先遇到同步任务console.log(1);输出1接着遇到setTimeout 异步宏任务放入宏任务队列中接着遇到 Promisenew Promise在实例化的过程中所执行的代码都是同步进行的但由于new Promise没有输出事件所以无事发生。接着遇到.thenthen是异步微任务,不执行加入到异步微任务列表遇到同步任务console.log(3);输出3主线程中同步任务执行完从微任务队列中取出任务到主线程中先取出作为微任务的.thenp.then 输出4,微任务执行完毕微任务队列为空开始执行宏任务setTimeout 输出2,宏任务队列为空 重点注意new Promise在实例化的过程中所执行的代码都是同步进行的 关于new Promise实例化过程的例子 console.log(1) setTimeout(function() {console.log(2)new Promise(function(resolve) {console.log(3)resolve()}).then(function() {console.log(4)}) })new Promise(function(resolve) {console.log(5)resolve() }).then(function() {console.log(6) })setTimeout(function() {console.log(7)new Promise(function(resolve) {console.log(8)resolve()}).then(function() {console.log(9)}) }) console.log(10) //15106234789 分析 先同步再异步从上往下编译执行首先遇到同步任务console.log(1);输出1遇到setTimeout 异步宏任务放入宏任务队列中遇到 Promisenew Promise在实例化的过程中所执行的代码都是同步进行的所以输出5所以接着遇到.then.then异步微任务,被分发到微任务Event Queue中遇到setTimeout异步宏任务;放入宏任务队列中遇到同步任务console.log(10);输出10,主线程中同步任务全部执行完;同步任务全部执行完从微任务队列中取出任务到主线程中输出6在从宏任务队列中取出任务到主线程中执行第一个setTimeout输出234在宏任务中执行同步,同步异步微任务;在执行第二个setTimeout输出789和8同理
http://www.eeditor.cn/news/124760/

相关文章:

  • 西安网站制作顶石家庄装修公司排名
  • 海南响应式网站建设制作传奇手机版网站
  • 制作公司网站视频小程序开发哪家好排行榜
  • app展示网站模板html5模板网站建设 报价
  • 广西建设网站培训淘宝seo优化
  • h5开发软件网站建优化
  • 网站运营成本预算dw网页设计图片链接
  • 校园二手网站设计论文搭建正规网站
  • 单页营销型网站模板哪个网站能在百度做推广
  • js获取网站域名河北省邢台市seo
  • 惠州市建网站公司网站建设方案对比分析
  • 网站建设的客户给人做设计的网站
  • 网站开发年薪wordpress 第三方应用
  • 网站建设概要设计怎么写wordpress缩略图采集火车头
  • 深圳光明新区网站建设顺企网杭州网站建设
  • 国外免费网站域名服务器贷款做网站
  • 建设钓鱼网站发软文
  • 南昌网站免费制作设计网站的企业
  • 建筑工人招聘网站怎么做怎么自己开发软件
  • 四川餐饮网站建设集团网站定制
  • 外贸建站行业好做吗大良网站建设如何
  • 网站服务器站点是什么意思网站的分页效果怎么做
  • 福建巢网站建设seo的工作流程
  • 关于网站建设的论文题目it运维管理软件排名
  • 长沙网站备案拍照点wordpress屏蔽广告
  • 制作网站软件免费代理网址是什么意思
  • wap网站开发教材住房和城乡建设部网站投诉电话
  • 许昌工程建设信息网站网站要怎么做吸客户引眼球
  • 做pc端网站行情广州网站建设高端网
  • 深圳网站策划网站后台管理系统ie8用不了