毫不夸张的说,下面的代码会有一半的人输出错误
上代码
async function getCount(id) {
return id;
}
let count = 0;
async function addCount(num) {
count += await getCount(num);
console.log(count);
}
addCount(1);
addCount(2);
console.log(count);
输出结果
0 1 2
解析
首先要了解js执行规则: 从上到下,从右至左
运行代码片段,从上到下依次执行,执行到第十行时出现异步片段,该异步片段放入任务队列,
继续执行第11行代码,遇到异步片段,再次放入队列,继续向下执行,直到主线程第一次执行结束,在12行时输出0,然后第一个异步释放结果输出1,第二个释放结果输出2
那怎么修改代码才能输出3呢?这个问题就让大家考虑吧
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)