在这种情况下,可以使用异步/等待(async/await)来解决。下面是一个示例代码:
// 同步函数
function syncFunction() {
const result = fetchData(); // 同步获取数据
// 执行其他操作
return result;
}
// 异步函数
async function asyncFunction() {
const result = await fetchDataAsync(); // 异步获取数据
// 执行其他操作
return result;
}
// 异步获取数据的函数
function fetchDataAsync() {
return new Promise((resolve, reject) => {
// 模拟异步操作,比如从服务器获取数据
setTimeout(() => {
resolve('异步值');
}, 1000);
});
}
// 主函数
async function main() {
try {
// 调用同步函数
const syncResult = syncFunction();
console.log(syncResult);
// 调用异步函数
const asyncResult = await asyncFunction();
console.log(asyncResult);
} catch (error) {
console.error(error);
}
}
// 执行主函数
main();
在这个示例中,syncFunction
是一个同步函数,它通过调用 fetchData
来获取数据。而 asyncFunction
是一个异步函数,通过使用 await
关键字来等待 fetchDataAsync
函数返回的异步值。在主函数 main
中,我们分别调用了同步函数和异步函数来比较它们的结果。