JS 等待ajax 结果再运行下一步return
时间: 2024-10-25 17:03:04 浏览: 25
在JavaScript中,当需要等待异步操作(如Ajax请求)完成后再执行后续步骤时,可以使用`async/await`或者`Promise`配合`then`方法。这里是一个简单的示例:
```javascript
function getData() {
return new Promise((resolve, reject) => {
// 发送Ajax请求
const xhr = new XMLHttpRequest();
xhr.open('GET', 'your-api-url', true);
xhr.onload = function () {
if (xhr.status === 200) { // 请求成功
resolve(xhr.response); // 返回数据
} else {
reject(new Error('Request failed')); // 请求失败
}
};
xhr.onerror = function () {
reject(new Error('There was a connection error'));
};
xhr.send();
});
}
// 使用async/await
async function processData() {
try {
const data = await getData(); // 等待Ajax响应
console.log('Received data:', data);
// 这里是处理数据的部分
} catch (error) {
console.error('Error:', error.message);
}
}
processData();
```
在这个例子中,`getData`函数返回一个Promise,我们通过`await`关键字阻塞主线程直到Promise状态改变。如果Ajax请求成功,Promise解析,否则解析错误。
阅读全文