解决js异步的方法有很多种,今天就讲解一下如何解决js中的异步问题。
在讲解异步解决办法之前我们需要知道什么是异步。定时器、AJAX、事件绑定等都会引起js的异步行为,今天用js中的定时器为例来讲解,看下题。
考虑下题中输出的结果为:
function getData() {
setTimeout(function() {
let name = '张三';
return name;
}, 1000);
}
console.log(getData());
这里就有很多人会说输出的结果为张三,那就说明你还没有真正理解异步。其实真正的输出结果为:undefined。这是因为setTimeout方法为异步方法。如果不明白为什么会这样,这里我讲一下js的执行机制大家就会更加明白了。
js执行机制:
(1).所有同步任务都在主线程上执行,形成一个执行栈(execut