js哪些方式可以做到异步?

JavaScript实现异步编程的主要方式有以下几种:

实现异步的方式:
- `setTimeout`、`setInterval`
- `Promise`
- `async/await`
- `XMLHttpRequest`
- `fetch`

 

‌1.回调函数(Callback)‌:这是最早的异步编程模型,通常用于处理事件监听、定时器等场景。例如,使用setTimeoutfetch请求的回调函数。回调函数的缺点是容易产生回调地狱,导致代码可读性差‌。

2.Promise‌:Promise提供了一种更优雅的方式来组织异步操作,能够避免回调地狱的问题。Promise有三种状态:pending(初始状态)、fulfilled(成功状态)、rejected(失败状态),且状态一旦改变就不会再变。通过thencatchfinally等方法可以链式调用,简化异步代码的编写‌

3.Generator函数‌:ES6引入的Generator函数结合yield关键字,可以暂停和恢复函数执行,实现异步操作。Generator函数可以与Promise结合使用,通过手动调用生成器或自定义自动执行函数来实现异步编程‌。

4.async/await‌:这是最现代的方式,实际上是基于Generator的语法糖。通过在函数声明前加上async关键字,并在函数体内使用await关键字等待Promise的结果,可以使异步代码看起来和写起来都像同步代码一样简洁明了‌。

5.事件监听‌:利用事件循环机制,通过addEventListener等方式监听特定事件的发生。例如,监听DOM事件或自定义事件‌。

6.HTML5的async和defer属性‌:这些属性可以用于<script>标签,指定脚本的加载和执行方式。async属性使得脚本可以异步加载和执行,而defer属性则保证脚本按顺序执行‌。

7.动态创建脚本‌:通过动态创建<script>标签并设置其src属性来加载外部脚本,这种方式可以控制脚本的加载和执行时机‌。

 

posted @ 2025-03-04 16:59  时光独醒  阅读(56)  评论(0)    收藏  举报