async/await和promise的执行顺序
2024-10-16 00:24:34
原题:
async function async1() {
console.log("async1 start");
await async2();
console.log("async1 end");
}
async function async2() {
console.log("async2");
}
console.log("start");
setTimeout(() => {
console.log("timeout");
}, 0);
async1();
console.log("processing");
new Promise((resolve, reject) => {
for (let index = 0; index < 2; index++) {
console.log(index);
resolve();
}
})
.then3(function () {
console.log("promise1");
})
.then4(() => {
console.log("promise2");
});
console.log("end");
我的问题出现在 await async2()的微任务执行,async2是另一个async函数;
出错后,我将思路转换成 async转为promise写法:
function async11() {
return new Promise((resolve) => {
console.log("async11 start");
resolve(async2());
}).then2(() => {
console.log("async11 end");
});
}
// async2 的promise写法为
function async22() {
return new Promise((resolve) => {
resolve(console.log("async22"));
}).then1(() => {
console.log("async22 micro"); //这里是校验微任务执行了,题目中为空语句
});
}
主任务队列执行完毕,当前微任务队列then1执行,放入新/微任务then2,当前微任务队列then3执行,放入新/微任务then4;微任务产生了微任务队列。
最新文章
- Mysql事务探索及其在Django中的实践(一)
- libsvm简介和函数调用参数说明
- 【bzoj1923】 Sdoi2010—外星千足虫
- 从网络上下载文件到sd卡上
- font-size:100%有什么作用
- [vijos P1083] 小白逛公园
- mac ruby rails安装(使用rvm)
- 精确到秒的JQuery日期控件
- hibernate 3.* C3P0配置 以及为什么需要连接池!
- github继续折腾
- JavaScript中函数参数的按值传递与按引用传递(即按地址传递)
- 关于javascript中setTimeout()和clearTimeout()的疑惑。
- NPOI兼容 excel2003,2007版本
- Linq skip skipwhile take takewhile
- sql server中单引号拼接字符串(书写错误会出现错误";浮点值 XXXX 超出了计算机表示范围(8 个字节)。“XX”附近有语法错误。";)
- python pymsql的用法 180903
- Day9 Python基础之函数基础(七)
- Maven classifier 元素妙用
- jquery改变元素上下排列的顺序
- oracle vm virtualbox 保存虚拟系统,重装后使用
热门文章
- Windows 串口代码
- kali linux生成密码字典方法
- Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column &#39;xxx&#39; in &#39;where clause&#39;
- Prufer序列 学习笔记
- 基于docker的spark分布式与单线程、多线程wordcount的对比实验
- 【狂神说】SpringMVC笔记
- API 文档
- 获取select的选中的值
- 关于MounRiver编译器配置的若干问题
- iOS开发之各机型屏幕大小与键盘高度整理