js高阶-async与事件循环

async函数

与普通函数的区别

复制代码
1.可以正常调用
2.返回值是一个promise
3.抛出异常,不影响后续代码执行
js 复制代码
// 3.抛出异常,返回的Promise对象为rejected状态

async function foo(){

    throw new Error("我是错误");

}

foo().catch(err=>{

    console.log(err);

  }

)

console.log("可以继续执行");

await 关键字

await 后面跟promise对象,

会暂停async函数的执行,等待promise状态改变

事件循环

js是单线程的,同一时间只能做一件事情

当遇到耗时长操作当前线程就会被阻塞

于是,出现异步操作
异步操作交给浏览器其他线程来处理,

处理完后将异步任务放入事件队列

js引擎在调用栈为空的时候会检测事件队列,从中取任务执行

这个过程事件循环

宏任务与微任务

事件队列,分为宏任务队列与微任务队列
js会先检查微任务队列,执行完后,在检查宏任务队列

宏任务

setTimeOut,ajax,UI Rendering,Dom监听等
微任务

Promise的then回调,queueMicroTask,Mutation Api等

相关推荐
中犇科技几秒前
郑州无代码APP开发公司哪家好呢?推荐
开发语言
时光足迹1 分钟前
ThreeJS之GUI控制器
前端·javascript·three.js
时光足迹2 分钟前
Tiptap编辑器
前端·javascript·react.js
im_AMBER4 分钟前
手撕hot100之矩阵!看完这篇就AC~
javascript·数据结构·线性代数·算法·leetcode·矩阵
周末也要写八哥4 分钟前
代码中的注释的重要性(二)
开发语言·python
时光足迹6 分钟前
电子书阅读器之笔记高亮(跨段处理)
前端·javascript·react.js
Hello-Mr.Wang28 分钟前
【保姆级教程】MasterGo MCP + Cursor 一键实现 UI 设计稿还原
前端·javascript·vue.js·ai编程
宁雨桥1 小时前
前端修行日记之JS 原型与 AI基础常识
前端·javascript·原型模式
水云桐程序员1 小时前
前端教程官方文档|HTML、CSS、JavaScript教程官方文档
前端·javascript·css·html·学习方法
本末倒置1831 小时前
Vue 3 开发者转型 React 指南:保姆级教程
前端·javascript·vue.js