JavaScript异步函数的常见模式主要包括以下几种:
- 回调函数模式:这是最基本的异步编程模式,通过将一个函数作为参数传递给另一个函数,在异步操作完成后调用该回调函数。例如:
function asyncOperation(callback) { setTimeout(() => { const result = '异步操作完成'; callback(result); }, 1000); } asyncOperation((result) => { console.log(result); });
- Promise模式:Promise是一种更高级的异步编程模式,它表示一个异步操作的最终结果。Promise可以用来处理异步操作的成功或失败,并且可以链式调用多个Promise。例如:
function asyncOperation() { return new Promise((resolve, reject) => { setTimeout(() => { const result = '异步操作完成'; resolve(result); }, 1000); }); } asyncOperation().then((result) => { console.log(result); }).catch((error) => { console.error(error); });
- async/await模式:async/await是基于Promise的一种更简洁的异步编程模式,它可以让异步代码看起来更像同步代码。async/await只能在async函数内部使用,当async函数等待一个Promise时,它会暂停执行并等待Promise的解决,然后继续执行。例如:
async function asyncOperation() { return new Promise((resolve, reject) => { setTimeout(() => { const result = '异步操作完成'; resolve(result); }, 1000); }); } (async () => { try { const result = await asyncOperation(); console.log(result); } catch (error) { console.error(error); } })();
- 事件驱动模式:事件驱动模式是一种基于事件的异步编程模式,当一个事件发生时,会触发一个事件处理器。例如,可以使用setTimeout函数创建一个定时器,当定时器到期时,会触发一个事件:
setTimeout(() => { const result = '异步操作完成'; console.log(result); }, 1000);
以上是JavaScript异步函数的常见模式,不同的模式适用于不同的场景,需要根据实际需求选择合适的模式。