首页 > 编程语言 > 详细

[JavaScript初级面试]5. JS基础-异步

时间:2021-09-06 07:55:06      阅读:16      评论:0      收藏:0      [点我收藏+]

题目

  • 同步和异步的区别是什么?
  • 手写用Promise加载一张图片
  • 前端使用异步的场景哪些?
  • setTimeout执行顺序

单线程

JS是单线程语言,只能同时做一件事儿;
JS和DOM渲染共用同一个线程,因为JS可修改DOM;
浏览器和nodejs已经支持JS启动进程,如web worker

单线程弊端

遇到等待(网络请求,定时任务)会暂停执行,用户界面无响应;

解决单线程弊端的方式:

采用异步执行方式,以回调callback函数的形式

// 同步方式:
console.log(100);
alert(200); // 同步执行,阻塞代码执行
console.log(300);
// 异步方式:
console.log(100);
setTimeout(() => {// callback函数异步调用,不会阻塞代码执行
  console.log(200);
});
console.log(300);

异步的应用场景

  • 网络请求,如ajax图片加载
  • 定时任务,如setTimeout

异步带来的问题

callback hell : 回调函数里面继续调用了回调函数

解决异步带来的callback hell问题

使用Promise

[JavaScript初级面试]5. JS基础-异步

原文:https://www.cnblogs.com/welody/p/15214486.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!