📜  等待回调 - Javascript (1)

📅  最后修改于: 2023-12-03 14:56:41.808000             🧑  作者: Mango

等待回调 - JavaScript

在 JavaScript 中,回调函数是一种常见的编程技术。 回调函数是一个稍后调用的函数,通常在异步操作完成后被调用,以便告知操作已完成。 回调函数通常用于处理异步请求的响应,例如从服务器获取数据。

在编写具有异步操作的 JavaScript 代码时,必须等待回调完成,然后才能执行下一步操作。 在这种情况下,可以使用许多编程技术来等待回调。

回调函数

回调函数是最常用的等待回调技术。 在 JavaScript 中,回调函数是在异步操作完成后执行的函数。

以下是一个简单的示例,该示例演示了在异步操作完成后执行回调函数的方式:

function getData(callback) {
  // 异步操作
  setTimeout(function () {
    var data = { name: '张三', age: 18 };
    callback(data);
  }, 1000); // 模拟 1 秒延迟
}

getData(function (data) {
  console.log('获取到数据:', data);
});

在上面的示例中,getData 函数接受一个回调函数作为参数,并在异步操作完成后调用该回调函数。

Promise

Promise 是一种用于处理异步操作的对象,它具有三种状态:待处理(pending)、已完成(fulfilled)和已拒绝(rejected)。 Promise 对象代表一项尚未完成且可能会异步完成的操作。

以下是一个简单的示例,该示例演示了使用 Promise 等待异步操作完成的方式:

function getData() {
  return new Promise(function (resolve, reject) {
    // 异步操作
    setTimeout(function () {
      var data = { name: '张三', age: 18 };
      resolve(data);
    }, 1000); // 模拟 1 秒延迟
  });
}

getData().then(function (data) {
  console.log('获取到数据:', data);
});

在上面的示例中,getData 函数返回一个 Promise 对象,并使用 then 方法处理异步操作完成后的结果。

async/await

async/await 是自 ES7 中引入的一种等待回调技术,它允许以同步的方式编写异步代码。 async/await 也是基于 Promise 的,它们提供了一种更加简单的方法来等待异步操作完成。

以下是一个简单的示例,该示例演示了使用 async/await 等待异步操作完成的方式:

function getData() {
  return new Promise(function (resolve, reject) {
    // 异步操作
    setTimeout(function () {
      var data = { name: '张三', age: 18 };
      resolve(data);
    }, 1000); // 模拟 1 秒延迟
  });
}

async function fetchData() {
  var data = await getData();
  console.log('获取到数据:', data);
}

fetchData();

在上面的示例中,fetchData 函数使用 async 定义,并使用 await 等待异步操作完成。

结论

等待回调是 JavaScript 中的一个重要主题,它涉及到许多编程技术,包括回调函数、Promise 和 async/await。 使用正确的技术可以大大简化编写异步 JavaScript 代码的过程。