当前位置:首页 > JavaScript

js原生实现异步

2026-02-02 22:11:21JavaScript

原生JavaScript实现异步的几种方式

JavaScript原生支持多种异步编程方式,主要包括回调函数、Promise、async/await以及事件监听等。

回调函数(Callback)

回调函数是最基础的异步处理方式,将函数作为参数传递给另一个函数,在异步操作完成后执行。

function fetchData(callback) {
    setTimeout(() => {
        callback('Data received');
    }, 1000);
}

fetchData((data) => {
    console.log(data); // 1秒后输出"Data received"
});

Promise

Promise是ES6引入的异步解决方案,提供了更清晰的链式调用方式。

function fetchData() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve('Data received');
            // 或 reject(new Error('Failed'));
        }, 1000);
    });
}

fetchData()
    .then(data => console.log(data))
    .catch(error => console.error(error));

async/await

ES2017引入的语法糖,使异步代码看起来像同步代码。

async function getData() {
    try {
        const data = await fetchData();
        console.log(data);
    } catch (error) {
        console.error(error);
    }
}

getData();

事件监听

通过事件监听机制实现异步处理,常用于DOM事件或自定义事件。

const emitter = new EventTarget();

emitter.addEventListener('data', (e) => {
    console.log(e.detail);
});

setTimeout(() => {
    emitter.dispatchEvent(new CustomEvent('data', {
        detail: 'Data received'
    }));
}, 1000);

Generator函数

ES6引入的Generator函数可以实现更复杂的异步流程控制。

js原生实现异步

function* fetchData() {
    yield new Promise(resolve => {
        setTimeout(() => resolve('Data received'), 1000);
    });
}

const gen = fetchData();
gen.next().value.then(data => console.log(data));

每种方式各有适用场景,现代JavaScript开发中推荐优先使用Promise配合async/await语法,能显著提高代码可读性和可维护性。

标签: js
分享给朋友:

相关文章

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…

js 多选 实现

js 多选 实现

实现多选的 JavaScript 方法 使用复选框(Checkbox)实现多选 通过 HTML 的 checkbox 元素配合 JavaScript 实现多选功能。用户可以选择多个选项,提交时获取所有…

js实现图片移动

js实现图片移动

使用CSS和JavaScript实现图片移动 方法一:使用CSS动画结合JavaScript控制 通过CSS定义动画关键帧,JavaScript动态添加或移除动画类。 /* CSS部分 */ .m…