如何掌握JavaScript异步编程的六种方式?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1194个文字,预计阅读时间需要5分钟。
异步编程+众所周知+JavaScript+是单线程工作+也是只有+一个脚本执行完成+才能执行下一个脚本+两个脚本不能同时执行+如果某个脚本耗时很长+后面的脚本都必须排队等着+会延迟执行
异步编程
众所周知 JavaScript 是单线程工作,也就是只有一个脚本执行完成后才能执行下一个脚本,两个脚本不能同时执行,如果某个脚本耗时很长,后面的脚本都必须排队等着,会拖延整个程序的执行。那么如何让程序像人类一样可以多线程工作呢?以下为几种异步编程方式的总结,希望与君共勉。
- 回调函数
- 事件监听
- 发布订阅模式
- Promise
- Generator (ES6)
- async (ES7)
异步编程传统的解决方案:回调函数和事件监听
初始示例:假设有两个函数, f1 和 f2,f1 是一个需要一定时间的函数。
function f1() { setTimeout(function(){ console.log('先执行 f1') },1000) } function f2() { console.log('再执行 f2') }
回调函数
因为 f1 是一个需要一定时间的函数,所以可以将 f2 写成 f1 的回调函数,将同步操作变成异步操作,f1 不会阻塞程序的运行,f2 也无需空空等待,例如 JQuery 的 ajax。
本文共计1194个文字,预计阅读时间需要5分钟。
异步编程+众所周知+JavaScript+是单线程工作+也是只有+一个脚本执行完成+才能执行下一个脚本+两个脚本不能同时执行+如果某个脚本耗时很长+后面的脚本都必须排队等着+会延迟执行
异步编程
众所周知 JavaScript 是单线程工作,也就是只有一个脚本执行完成后才能执行下一个脚本,两个脚本不能同时执行,如果某个脚本耗时很长,后面的脚本都必须排队等着,会拖延整个程序的执行。那么如何让程序像人类一样可以多线程工作呢?以下为几种异步编程方式的总结,希望与君共勉。
- 回调函数
- 事件监听
- 发布订阅模式
- Promise
- Generator (ES6)
- async (ES7)
异步编程传统的解决方案:回调函数和事件监听
初始示例:假设有两个函数, f1 和 f2,f1 是一个需要一定时间的函数。
function f1() { setTimeout(function(){ console.log('先执行 f1') },1000) } function f2() { console.log('再执行 f2') }
回调函数
因为 f1 是一个需要一定时间的函数,所以可以将 f2 写成 f1 的回调函数,将同步操作变成异步操作,f1 不会阻塞程序的运行,f2 也无需空空等待,例如 JQuery 的 ajax。

