当前位置:首页 > JavaScript

js 实现同步

2026-03-13 17:57:08JavaScript

同步与异步的基本概念

JavaScript 默认是单线程且异步的,但可以通过特定方式实现同步行为。同步代码会阻塞后续执行,直到当前操作完成,而异步代码允许其他任务在等待时继续执行。

使用回调函数实现同步

回调函数可以确保代码按顺序执行,但嵌套过多会导致“回调地狱”。

function task1(callback) {
    console.log("Task 1");
    callback();
}

function task2() {
    console.log("Task 2");
}

task1(task2);

使用 Promise 链式调用

Promise 的 .then() 方法可以按顺序执行异步操作,避免回调嵌套。

function asyncTask1() {
    return new Promise(resolve => {
        console.log("Task 1");
        resolve();
    });
}

function asyncTask2() {
    console.log("Task 2");
}

asyncTask1().then(asyncTask2);

使用 async/await

async/await 是更简洁的同步写法,底层基于 Promise。

async function runTasks() {
    await new Promise(resolve => {
        console.log("Task 1");
        resolve();
    });
    console.log("Task 2");
}

runTasks();

使用同步阻塞方法(不推荐)

某些 API 提供同步版本(如 fs.readFileSync),但会阻塞主线程。

js 实现同步

const fs = require('fs');
const data = fs.readFileSync('file.txt', 'utf8');
console.log(data);

注意事项

  • 同步操作可能影响性能,尤其是在浏览器中会导致界面冻结。
  • 优先使用 async/await 或 Promise 处理异步逻辑,避免阻塞。
  • Node.js 中部分模块提供同步 API,但需谨慎使用。

标签: js
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…