JavaScript Promise 示例:异步操作的优雅解决方案
Promise 是 JavaScript 中用于处理异步操作的一种方法。它可以解决回调地狱的问题,使异步操作更加简洁和可读。
下面是一些前端中使用 Promise 的示例:
- 使用 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);
});
- 使用 Promise 封装定时器:
function delay(time) {
return new Promise(function(resolve) {
setTimeout(resolve, time);
});
}
delay(1000)
.then(function() {
console.log('1 second delay');
});
- 使用 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 的基本用法和一些常见的应用场景。
原文地址: https://www.cveoy.top/t/topic/plaY 著作权归作者所有。请勿转载和采集!