现在我们有三个函数,f1, f2, f3
按正常的思路我们会这样写代码:
但是假如我们f2这个函数在执行的时候会花费大量时间,或者直接就进入了一个死循环了,那我们的f3就别指望能被调用了,因为Javascript语言的执行环境是"单线程"(single thread)。
所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。
为了应对这样的事情,我们就有了异步模式编程;
要点:setTimeout 和 setInterval这两个定时器默认都是异步模式执行
我们把代码写成这样:
这种方式是采用事件驱动模式。即任务的执行不取决于代码的顺序,而取决于某个事件是否发生
博客中所涉及到的图片都有版权,请谨慎使用