异步编程工作过程
Posted 前端JavaScript
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异步编程工作过程相关的知识,希望对你有一定的参考价值。
javascript采用单线程模式工作的原因
同步模式(Synchronous)
console.log('global begin')
function bar () {
consoler.log('bar task')
}
function foo () {
consoler.log('foo task')
bar()
}
foo()
consoler.log('global end')
异步模式(Asynchronous)
异步API
异步的API不会去等待当前任务的结束才开始下一个任务,对于耗时操作都是开启过后就立即往后执行下一个任务,后续逻辑一般会通过回调函数的方式定义(耗时操作执行完毕之后会自动执行回调函数)。
异步编程的优劣
如果没有异步模式,单线程的JavaScript语言就无法同时处理大量耗时任务;
-
异步编程的难点在于代码的执行顺序混乱; -
异步编程是JavaScript的核心特点,也是大量异步API的关系,写出的JavaScript代码也就没有那么容易读,执行顺序也相对会复杂很多,特别是复杂的业务逻辑,要学习JavaScript中那些为异步而生的语法,特别是es2015之后推出的新语法,新特性,这些慢慢弥补了JavaScript在异步编程这块的不足或者不便。
异步执行流程
案例分析
console.log('gobal begin') 1
setTimeout(function timer1 () {
console.log('timer1 invoke') 4
}, 1800)
setTimeout(function timer2 () {
console.log('timer2 invoke') 3
setTimeout(function timer3 () {
console.log('timer1 invoke') 5
}, 1000)
}, 1800)
console.log('global end') 2
执行结果
以上是关于异步编程工作过程的主要内容,如果未能解决你的问题,请参考以下文章