异步等待(Asynchronous Wait)是一种编程模式,用于处理可能需要较长时间完成的操作,而不会阻塞程序的其他部分。在处理网络请求,特别是获取JSON数据时,异步等待是非常重要的,因为它允许应用程序在等待数据返回的同时继续执行其他任务。
以下是一个使用fetch
API和async/await
来异步获取JSON数据的例子:
async function fetchJsonData(url) {
try {
const response = await fetch(url);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
return data;
} catch (error) {
console.error('Fetching JSON data failed:', error);
throw error; // 可以选择重新抛出错误或者返回一个默认值
}
}
// 使用示例
fetchJsonData('https://api.example.com/data')
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
AbortController
来取消过期的请求。try/catch
块捕获解析错误。async function fetchJsonDataWithTimeout(url, timeout = 5000) {
const controller = new AbortController();
const id = setTimeout(() => controller.abort(), timeout);
try {
const response = await fetch(url, { signal: controller.signal });
clearTimeout(id);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
return data;
} catch (error) {
console.error('Fetching JSON data failed:', error);
throw error;
}
}
通过这种方式,你可以确保即使在面对网络延迟或其他问题时,你的应用程序也能够优雅地处理异步操作。
领取专属 10元无门槛券
手把手带您无忧上云