同步和异步的区别是什么
# 问题: 同步和异步的区别是什么
# 同步(Synchronous)
console.log("开始执行同步操作");
function syncOperation() {
console.log("同步操作开始");
// 模拟一个耗时操作
for (let i = 0; i < 5; i++) {
console.log("同步操作进行中...");
}
console.log("同步操作结束");
}
syncOperation();
console.log("同步操作执行完毕");
在这个示例中,同步操作会按照顺序执行。syncOperation
函数是一个同步操作,它会模拟一个耗时的循环操作。在执行该操作期间,整个程序都会被阻塞。因此,在调用 syncOperation
之后,直到该操作完成前,后续的代码都无法执行。只有当同步操作执行完毕后,才会打印出最后一行的日志。
# 异步(Asynchronous)
console.log("开始执行异步操作");
function asyncOperation() {
console.log("异步操作开始");
// 模拟一个异步操作,使用setTimeout来延迟执行
setTimeout(function () {
console.log("异步操作完成");
}, 2000);
}
asyncOperation();
console.log("异步操作执行完毕前");
在这个示例中,asyncOperation
函数是一个异步操作,它使用 setTimeout
来模拟一个异步任务,延迟执行2秒钟。在调用 asyncOperation
之后,不会等待异步操作完成,而是继续执行后续的代码。因此,在异步操作执行期间,后续的代码可以继续执行。在异步操作完成后,通过回调函数来处理结果。
注意,在异步操作执行完毕前,最后一行的日志就已经被打印出来了,因为它不需要等待异步操作的完成。
这个示例展示了同步和异步操作的区别:同步操作会阻塞程序的执行,而异步操作不会阻塞程序的执行,可以在操作完成前继续执行其他代码。