当前位置:首页 > JavaScript

js 同步实现

2026-02-01 13:30:10JavaScript

同步与异步的概念

JavaScript 默认是单线程且异步的,但可以通过特定方式实现同步风格的代码。同步代码会阻塞后续执行,直到当前操作完成。

回调函数实现同步

通过嵌套回调强制代码按顺序执行,但会导致“回调地狱”。

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

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

task1(task2); // 输出顺序: Task 1 → Task 2

Promise 链式调用

使用 Promise.then() 实现同步流程,避免回调嵌套。

function asyncTask() {
  return new Promise((resolve) => {
    setTimeout(() => {
      console.log("Async Task");
      resolve();
    }, 1000);
  });
}

asyncTask()
  .then(() => console.log("Next Step"));

async/await 语法

通过 async/await 以同步写法处理异步操作,需在函数前标记 async,并用 await 等待 Promise 完成。

async function runTasks() {
  await asyncTask(); // 等待异步任务完成
  console.log("After Async Task");
}

runTasks();

同步阻塞示例(不推荐)

使用 while 循环或 Date 强制阻塞主线程,但会冻结页面。

js 同步实现

function syncDelay(ms) {
  const start = Date.now();
  while (Date.now() - start < ms) {}
  console.log("Delay Complete");
}

syncDelay(2000); // 阻塞2秒

注意事项

  • 避免在主线程中使用同步阻塞,影响用户体验。
  • 优先选择 async/await 或 Promise 链式调用实现逻辑同步。
  • 浏览器环境中,同步 XMLHttpRequest 已被弃用,推荐使用 fetchaxios 的异步方式。

标签: js
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现正交

js实现正交

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

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…