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

怎么做用户调研网站专业网络推广公司

怎么做用户调研网站,专业网络推广公司,今天最火的新闻头条,朝阳专业网站建设1.请描述Event loop(事件循环)的机制。 JS是单线程的,异步需要基于毁掉来实现,event loop 就是异步回调的实现原理。 同步代码,一行一行放在Call Stack执行,遇到异步任务,标记一下让其他线程去处…

1.请描述Event loop(事件循环)的机制。
JS是单线程的,异步需要基于毁掉来实现,event loop 就是异步回调的实现原理。
同步代码,一行一行放在Call Stack执行,遇到异步任务,标记一下让其他线程去处理(定时,网络请求等),其他线程处理完毕就放到callback Queue, 如果Call stack清空(即同步代码执行完),开始执行当前的微任务和微任务引发的微任务,执行完毕微任务队列,然后尝试进行DOM渲染,渲染结束,Event loop开始工作,轮询查找Callback Queue, 如果有则移动到Call Stack执行,然后继续重复上述步骤(永动机一样)。

2.什么是宏任务和微任务,两者有什么区别?
宏任务: setTimeout、setInterval、Ajax、DOM事件
微任务 :Promise、 async/await、
微任务执行时机比宏任务要早,微任务在DOM渲染前触发,宏任务在DOM渲染后出触发。微任务是ES6语法规定,宏任务是由浏览器规定的
3.Promise 有哪三种状态?如何变化?
三种状态:pending\resolved\rejected
pending ->resolved或pending -> rejected,变化不可逆。
resolved 会触发then回调,rejected会触发catch回调,只要回调里面没有报错,无论是then或catch返回的都是resolved状态,报错时会返回rejected状态。
4.async/await Promise的关系
执行async函数,返回的是一个Promise对象;await相当于Promise的then; try…catch可捕获异常,代替了Promise的catch。await后边的内容都可以当作异步回调的内容。

5.手写Promise

  • 初始化&异步调用
  • then链式调用
  • API、resolve、 reject 、all、 race、
class MyPromise {constructor(executor) {this.state = "pending";this.value = undefined;this.onResolveCallbacks = [];this.onRejectCallbacks = [];const resolve = (value) => {if (this.state === "pending") {this.state = "fulfilled";this.value = value;this.onResolveCallbacks.forEach((callback) => callback(this.value));}};const reject = (reason) => {if (this.state === "pending") {this.state = "rejected";this.value = reason;this.onRejectCallbacks.forEach((callback) => callback(this.value));}};try {executor(resolve, reject);} catch (error) {reject(error);}}then(onResolve, onReject) {return new MyPromise((resolve, reject) => {if (this.state === "fulfilled") {try {const result = onResolve(this.value);resolve(result);} catch (error) {reject(error);}} else if (this.state === "rejected") {try {const result = onReject(this.value);resolve(result);} catch (error) {reject(error);}} else {this.onResolveCallbacks.push((value) => {try {const result = onResolve(value);resolve(result);} catch (error) {reject(error);}});this.onRejectCallbacks.push((reason) => {try {const result = onReject(reason);resolve(result);} catch (error) {reject(error);}});}});}catch(onReject) {return this.then(null, onReject);}
}
http://www.dinnco.com/news/65087.html

相关文章:

  • 湖南长沙网站制作大数据分析
  • 做游戏类型的网站的好处地推网推平台
  • 河南旅游集团 网站建设免费推广软件平台
  • 一学一做教育视频网站兰州seo新站优化招商
  • ps切片以后 怎么做网站长沙网站优化对策
  • 行业网站建站青岛公司游戏广告投放平台
  • 杭州做网站哪个公司好百度公司在哪里
  • 宁德网站开发google浏览器下载
  • 黑龙江省建设厅网站站长开发一款app软件需要多少钱
  • 想让网站的文章都被收录怎么做黄页引流推广网站软件免费
  • 网代理加盟seo首页排名优化
  • 做招聘网站需要资质吗seo试用软件
  • 武汉营销网站建设公司网站模板哪家好
  • 网站图怎么做才能小而清晰度学大教育一对一收费价格表
  • 邯郸做外卖网站的公司成都百度seo推广
  • wordpress同步到微博班级优化大师功能介绍
  • 上海市网站建设廊坊优化技巧
  • 衢州站规模经典软文案例200字
  • 园艺建设网站seo排名优化课程
  • 墙内千兆网站怎么做焦作网站seo
  • 手机网站如何做营销搜索优化整站优化
  • 绍兴网站制作外贸企业网站制作哪家好
  • 网站公司谁家好百度快照手机版
  • 做平面设计去哪些网站找图西安seo服务
  • 广州网站建设海珠新科国外seo
  • 自适应网站做多大尺寸的搜索引擎排名优化
  • 临沂做四维和美家网站成都搜索优化整站优化
  • 如何防止网站被注入黑链免费建立网站步骤
  • 做网站就安徽seo网络优化师
  • 建设工程安全管理网站html网页制作软件