当前位置:首页 > JavaScript

js 实现同步

2026-04-05 12:16:35JavaScript

同步实现方法

JavaScript 是单线程语言,但可通过以下方式模拟同步行为:

Promise 与 async/await

使用 async/await 语法糖简化异步代码的编写,使其看起来像同步代码:

js 实现同步

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

回调函数

通过嵌套回调实现顺序执行,但可能导致回调地狱:

function task1(callback) {
  setTimeout(() => {
    console.log('Task 1 done');
    callback();
  }, 1000);
}

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

task1(task2);

Generator 函数

利用 yield 暂停函数执行,实现同步效果:

js 实现同步

function* generatorFunc() {
  yield console.log('Step 1');
  yield console.log('Step 2');
}

const gen = generatorFunc();
gen.next();
gen.next();

Web Workers

在后台线程运行耗时操作,避免阻塞主线程:

const worker = new Worker('worker.js');
worker.postMessage('start');
worker.onmessage = (e) => {
  console.log(e.data);
};

同步 AJAX(不推荐)

使用 XMLHttpRequest 的同步模式,会阻塞 UI:

const xhr = new XMLHttpRequest();
xhr.open('GET', 'url', false); // 同步请求
xhr.send();
console.log(xhr.responseText);

注意事项

  • 避免使用同步 AJAX,会导致页面冻结
  • async/await 需要 Promise 支持
  • Generator 需配合执行器使用
  • Web Workers 不能直接访问 DOM

标签: js
分享给朋友:

相关文章

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现全选

js实现全选

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

js树实现

js树实现

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

js实现正交

js实现正交

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

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…