(AJAX)使用Promise管理异步操作
warning:
这篇文章距离上次修改已过190天,其中的内容可能已经有所变动。
// 假设我们有一个函数,它使用XMLHttpRequest发送请求并返回一个Promise
function sendAjaxRequest(url, method, data) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.onload = function() {
if (this.status >= 200 && this.status < 300) {
resolve(xhr.response);
} else {
reject({
status: this.status,
statusText: xhr.statusText
});
}
};
xhr.onerror = function() {
reject({
status: this.status,
statusText: xhr.statusText
});
};
if (method === 'POST') {
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
}
xhr.send(data);
});
}
// 使用Promise来处理AJAX请求
sendAjaxRequest('https://api.example.com/data', 'GET')
.then(function(response) {
// 处理响应
console.log('Success:', response);
})
.catch(function(error) {
// 处理错误
console.error('Error:', error);
});
这个代码示例展示了如何创建一个返回Promise的函数,该Promise在XMLHttpRequest的异步操作完成时解决或拒绝。然后,我们展示了如何调用这个函数并使用.then()
和.catch()
方法来处理可能的响应或错误。这是现代JavaScript开发中管理异步操作的标准方法。
评论已关闭