Promise 是 JavaScript 中用于处理异步操作的一种方法。它可以解决回调地狱的问题,使异步操作更加简洁和可读。

下面是一些前端中使用 Promise 的示例:

  1. 使用 Promise 封装 Ajax 请求:
function ajax(url, method) {
  return new Promise(function(resolve, reject) {
    var xhr = new XMLHttpRequest();
    xhr.open(method, url);
    xhr.onreadystatechange = function() {
      if (xhr.readyState === XMLHttpRequest.DONE) {
        if (xhr.status === 200) {
          resolve(xhr.responseText);
        } else {
          reject(xhr.statusText);
        }
      }
    };
    xhr.onerror = function() {
      reject('Network Error');
    };
    xhr.send();
  });
}

ajax('https://api.example.com/data', 'GET')
  .then(function(response) {
    console.log('Success:', response);
  })
  .catch(function(error) {
    console.log('Error:', error);
  });
  1. 使用 Promise 封装定时器:
function delay(time) {
  return new Promise(function(resolve) {
    setTimeout(resolve, time);
  });
}

delay(1000)
  .then(function() {
    console.log('1 second delay');
  });
  1. 使用 Promise.all 同时处理多个异步操作:
var p1 = Promise.resolve(1);
var p2 = new Promise(function(resolve) {
  setTimeout(resolve, 2000, 2);
});
var p3 = new Promise(function(resolve) {
  setTimeout(resolve, 1000, 3);
});

Promise.all([p1, p2, p3])
  .then(function(values) {
    console.log(values); // [1, 2, 3]
  });

以上是一些前端中使用 Promise 的示例,它们展示了 Promise 的基本用法和一些常见的应用场景。

JavaScript Promise 示例:异步操作的优雅解决方案

原文地址: https://www.cveoy.top/t/topic/plaY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录