在返回 http.get
之前等待异步数据可以使用 async/await
或者 Promise
来实现。
使用 async/await
的方式,可以将异步操作包装在一个 async
函数中,然后使用 await
关键字等待异步操作完成。在这种情况下,可以使用 axios
库来发送 HTTP 请求。
以下是一个使用 async/await
的示例代码:
const axios = require('axios');
async function getData() {
try {
const response = await axios.get('https://api.example.com/data');
return response.data;
} catch (error) {
console.error(error);
throw new Error('Failed to fetch data');
}
}
// 调用 getData 函数并等待异步数据
async function fetchData() {
try {
const data = await getData();
console.log(data);
// 在这里可以对数据进行处理或者返回给调用方
} catch (error) {
console.error(error);
}
}
fetchData();
使用 Promise
的方式,可以创建一个返回 Promise
的函数,并在异步操作完成后通过 resolve
或 reject
来处理结果。在这种情况下,可以使用 node-fetch
库来发送 HTTP 请求。
以下是一个使用 Promise
的示例代码:
const fetch = require('node-fetch');
function getData() {
return new Promise((resolve, reject) => {
fetch('https://api.example.com/data')
.then(response => {
if (response.ok) {
return response.json();
} else {
throw new Error('Failed to fetch data');
}
})
.then(data => resolve(data))
.catch(error => reject(error));
});
}
// 调用 getData 函数并等待异步数据
function fetchData() {
getData()
.then(data => {
console.log(data);
// 在这里可以对数据进行处理或者返回给调用方
})
.catch(error => console.error(error));
}
fetchData();
以上示例中,getData
函数发送了一个 HTTP GET 请求,并返回一个 Promise
对象。在 fetchData
函数中,我们调用了 getData
函数并使用 .then
方法来处理异步数据的结果。
请注意,以上示例中使用的是 axios
和 node-fetch
这两个库来发送 HTTP 请求,你可以根据自己的需求选择适合的库。
领取专属 10元无门槛券
手把手带您无忧上云