当前位置:首页 > JavaScript

js异步实现方式

2026-03-16 06:12:35JavaScript

回调函数(Callback)

回调函数是最基础的异步实现方式,将函数作为参数传递给另一个函数,在异步操作完成后调用。例如处理文件读取或网络请求:

fs.readFile('file.txt', 'utf8', function(err, data) {
    if (err) throw err;
    console.log(data);
});

Promise

Promise 对象代表异步操作的最终完成或失败,提供链式调用避免回调地狱。通过 thencatch 方法处理结果:

fetch('https://api.example.com/data')
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));

async/await

async/await 是建立在 Promise 之上的语法糖,使异步代码看起来像同步代码。async 函数返回 Promise,await 暂停执行直到 Promise 完成:

async function fetchData() {
    try {
        const response = await fetch('https://api.example.com/data');
        const data = await response.json();
        console.log(data);
    } catch (error) {
        console.error('Error:', error);
    }
}

事件监听(Event Emitter)

通过事件驱动模型实现异步,常见于 Node.js 的 EventEmitter 类。监听特定事件并在触发时执行回调:

const EventEmitter = require('events');
const emitter = new EventEmitter();

emitter.on('data', (data) => {
    console.log('Received:', data);
});

emitter.emit('data', 'Sample data');

Generator 函数

Generator 函数通过 yield 暂停执行,与 Promise 结合可实现类似 async/await 的效果。需手动控制迭代器:

function* fetchData() {
    const response = yield fetch('https://api.example.com/data');
    const data = yield response.json();
    console.log(data);
}

const iterator = fetchData();
iterator.next().value
    .then(res => iterator.next(res).value)
    .then(data => iterator.next(data));

Web Workers

Web Workers 允许在后台线程运行脚本,避免阻塞主线程。通过 postMessageonmessage 通信:

js异步实现方式

// 主线程
const worker = new Worker('worker.js');
worker.onmessage = (e) => {
    console.log('Result:', e.data);
};
worker.postMessage('start');

// worker.js
self.onmessage = (e) => {
    const result = heavyComputation(e.data);
    self.postMessage(result);
};

标签: 方式js
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

h5实现方式

h5实现方式

H5实现方式 H5(HTML5)是构建现代网页和移动应用的核心技术之一,以下为常见的H5实现方式及相关技术要点: 基础HTML5结构 使用HTML5的语义化标签构建页面框架: <!DOCTY…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: fun…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…