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

河南建设信息网站徐州土地交易网

河南建设信息网站,徐州土地交易网,绿色做环保网站的好处,如何自己弄一个网站借鉴#xff1a; 《Javascript 忍者秘籍》第二版#xff0c;事件循环篇 面试 | JS 事件循环 event loop 经典面试题含答案 - 知乎 (zhihu.com) 概念 主栈队列就是一个宏任务#xff0c;每一个宏任务执行完就会执行宏任务中的微任务#xff0c;直到微任务全部都执行完 《Javascript 忍者秘籍》第二版事件循环篇 面试 | JS 事件循环 event loop 经典面试题含答案 - 知乎 (zhihu.com) 概念 主栈队列就是一个宏任务每一个宏任务执行完就会执行宏任务中的微任务直到微任务全部都执行完才开始执行下一个宏任务。JS 中任务的执行顺序优先级是主栈全局任务(宏任务) 宏任务中的微任务 下一个宏任务。所以 promise(微任务).then() 的执行顺序优先级高于setTimeout定时器。不能满目的将 .then 的回调放入微任务队列因为没有调用 resolve或者reject 之前是不算异步任务完成的 所以不能将回调随意的放入微任务事件队列await 是一个让出线程的标志。await 后面的表达式会先执行一遍将 await 后面的代码加入到 micro task中这个微任务是 promise 队列中微任务然后就会跳出整个 async 函数来继续执行后面的代码。process.nextTick 是一个独立于 eventLoop 的任务队列主栈中的宏任务每一次结束后都是先执行 process.nextTick队列在执行微任务 promise 的 .then()。每一个宏任务和宏任务的微任务执行完后都会对页面 UI 进行渲染 宏任务 macrotask script 整体代码setTimeoutsetIntervalsetImmediateI/Oui render微任务 microtask process.nextTickpromise.thenawait 后面的代码MutationObserverh5新特性 为什么 await 后面的代码会进入到promise队列中的微任务 async/await 只是操作 promise 的语法糖最后的本质还是promise async function async1() {console.log(async1 start);await async2();console.log(async1 end); } // 上面的代码等价于 async function async1() {console.log(async1 start);Promise.resolve(async2()).then(() {console.log(async1 end)}) } 面试题 面试题1 async function async1() {console.log(1) // 2async2().then(() {console.log(2)}) } async function async2() {console.log(3) // 3 } console.log(4) // 1 setTimeout(function () {console.log(5) }, 0) async1(); new Promise(function (resolve) {console.log(6) // 4resolve(); }).then(function () {console.log(7) }) console.log(8) // 5 //4 1 3 6 8 2 7 5面试题2 setTimeout(() {console.log(1);}, 0);async function main1() {new Promise((resolve, reject) {console.log(2);resolve();}).then(() {console.log(3);})await main2();console.log(7);}function main2() {console.log(8);}main1();setTimeout(() {console.log(10);}, 0);// 2 8 3 7 1 10面试题3 Promise.resolve().then(() {console.log(0);return Promise.resolve(4x);}).then((res) { console.log(res) }) Promise.resolve().then(() { console.log(1); }).then(() { console.log(2); }, () { console.log(2.1) }).then(() { console.log(3); }).then(() { console.log(5); }).then(() { console.log(6); })// 0 1 2 3 4x 5 6 面试题4  详解(1 封私信) 关于promise输出顺序的疑问 - 知乎 (zhihu.com) new Promise((resolve,reject) {console.log(外部promise)resolve() }) .then(() {console.log(外部第一个then)new Promise((resolve,reject) {console.log(内部promise)resolve()}).then(() {console.log(内部第一个then)return Promise.resolve()}).then(() {console.log(内部第二个then)}) }) .then(() {console.log(外部第二个then) }) .then(() {console.log(外部第三个then) }) .then(() {console.log(外部第四个then) }) // 外部promise外部第一个then内部promise 内部第一个then 外部第二个then 外部第三个then外部第四个then内部第二个then 面试题5 // A 任务 setTimeout(() {console.log(1) }, 20)// B 任务 setTimeout(() {console.log(2) }, 0)// C 任务 setTimeout(() {console.log(3) }, 10)// D setTimeout(() {console.log(5) }, 10)console.log(4) /* 输出 * 4 - 2- 3 - 5 - 1 */ 面试题6 setTimeout(function () {console.log(1) }, 0);new Promise(function (resolve, reject) {console.log(2)for (var i 0; i 10000; i) {if (i 10) {console.log(10)}i 9999 resolve();}console.log(3) }).then(function () {console.log(4) }) console.log(5); // 2, 10, 3, 5, 4, 1 面试题7 console.log(start); setTimeout(() {console.log(children2)Promise.resolve().then(() {console.log(children3)}) }, 0)new Promise(function(resolve, reject){console.log(children4)setTimeout(function(){console.log(children5)resolve(children6)}, 0) }).then(res { // flagconsole.log(children7)setTimeout(() {console.log(res)}, 0) }) // start children4 children2 children3 children5 children7 children6 面试题8 这道题的难点在于是 promise2还是 async1 end 先输出。从全局宏任务之上而下执行时 await async2() 后面的代码 console.log(async1 end) 先进入 promise 中的微任务队列最后.then() 中的console.log(promise2) 再进入到 promise 中的微任务队列。所以再开始下一轮宏任务循环之前先输出了 async1 end 再输出了 promise2。全局中的微任务执行完成开始下一轮宏任务setTimeout 最后输出 setTimeout。 async function async1() {console.log(async1 start)await async2()console.log(async1 end) } async function async2() {console.log(async2) } console.log(script start) setTimeout(function () {console.log(setTimeout) }, 0) async1() new Promise((resolve) {console.log(promise1)resolve() }).then(function () {console.log(promise2) }) console.log(script end) //输出 //script start //async1 start //async2 //promise1 //script end //async1 end //promise2 //setTimeout 面试题9  首先开始全局下的宏任务依次输出 script start, async1 start, promise1, promise3, script end。其中 await async2();async2() 中.then()的代码先进入到promise的微任务队列await async2(); 后面的代码再进入到promise的任务队列console.log(promise4); 最后进入到 promise 的任务队列。全局下的宏任务结束开始全局下的微任务promise 的微任务队列中按照队列的先进先出原则依次输出promise2async1 endpromise4。全局微任务结束开始下一轮的宏任务setTimeout最终输出 setTimeout。 async function async1() {console.log(async1 start);await async2();console.log(async1 end); } async function async2() {new Promise(function (resolve) {console.log(promise1);resolve();}).then(function () {console.log(promise2);}); } console.log(script start); setTimeout(function () {console.log(setTimeout); }, 0) async1(); new Promise(function (resolve) {console.log(promise3);resolve(); }).then(function () {console.log(promise4); }); console.log(script end); //script start, // async1 start, // promise1, // promise3, // script end, // promise2 // async1 end // promise4, // setTimeout 面试题10 async function async1() {console.log(async1 start);await async2();setTimeout(function() {console.log(setTimeout1) // 这一部分代码会放入到 promise 的微任务队列中。},0) } async function async2() {setTimeout(function() {console.log(setTimeout2)},0) } console.log(script start); setTimeout(function() {console.log(setTimeout3); }, 0) async1(); new Promise(function(resolve) {console.log(promise1);resolve(); }).then(function() {console.log(promise2); }); console.log(script end); // script start, async1 start, promise1, script end, // promise2, setTimeout3, setTimeout2, setTimeout1
http://www.hkea.cn/news/14346863/

相关文章:

  • 泰安网站建设流程在线学习建设网站
  • 如何得到网站后台权限做啥英文网站赚钱
  • 用vps建网站备案信息网站建设的意义
  • 苏州市建设厅网站首页基于php的图书管理系统论文
  • 微网站建设要多少钱余姚住房和建设局网站
  • 网站开发使用的语言有哪些宝塔配置wordpress主题
  • 台州市城乡建设局网站公司营销型网站公司
  • 网站制作过程流程织梦游戏网站源码
  • 做国外衣服的网站扬州建设工程信息网站
  • php网站开发招聘需求wordpress主题设置导出
  • 有什么好的提供外链网站百度关键词广告怎么收费
  • 做网站1万多手机网页设计软件下载
  • 网站建设描述书进了网站的后台系统 怎么改公司的网站
  • 百度网站建设中的自由容器网站建设发展现状
  • 企业平台网站建设wordpress 的主题在哪个文件夹
  • 网站开发资金投入软件开发定制
  • 网站建设郑州软件开发的软件有哪些
  • 做网站一班需要多少钱品牌策划的意义
  • 面向对象网站开发地方购物网站盈利模式
  • 网站开发语言 asp网站流量是怎么赚钱的
  • 石岩附近网站建设公司松江团购做网站
  • 网站开发目的和意义10个神奇的.htaccess技巧(for wordpress)
  • html网站开发开题报告范文企业网站 流程
  • h5网站建设方案预售网站开发
  • 长沙 网站优化wordpress怎么集成码支付
  • 医生在网站上做自我宣传营销的概念是什么
  • 做网站软件frontpage深圳城乡和建设局网站
  • 纸箱手工制作大全网站怎么做seo_
  • 一般建一个外贸网站多少钱企业网站建设合同
  • 提升网站知名度制作软件的工作叫什么