一 回调函数
异步编程的最基本方法,把任务的第二段单独写在一个函数里面,等到重新执行这个任务的时候,就直接调用这个函数。
优点:简单、容易理解和实现。
缺点:多次调用会使代码结构混乱,形成回调地狱。
function sleep(time, callback) {
setTimeout(() => {
// 一些逻辑代码
callback();
}, time);
}
二 事件监听
异步任务的执行不取决于代码的执行顺序,而取决于某个事件是否发生。
优点:易于理解,此外对于每个事件可以指定多个回调函数,而且可以“去耦合”,有利于实现模块化。
缺点:整个程序都要变成事件驱动型,运行流程会变得很不清晰。
dom.addEventListener(‘click’, () => {
console.log(‘dom被点击后触发!!!’);
})
三 发布/订阅
发布/订阅模式在观察者模式的基础上,在目标和观察者之间增加一个调度中心。订阅者(观察者)把自己想要订阅的事件注册到调度中心,当该事件触发的时候,发布者(目标)发布该事件到调度中心,由调度中心统一调度订阅者注册到调度中心的处理代码。
四 Promise
Promise 是异步编程的一种解决方案,是为解决回调函数地狱这个问题而提出的,它不