啥是同步、啥是异步
JavaScript中,同步(Synchronous)和异步(Asynchronous)是两种处理代码执行顺序的主要方式,
同步(Synchronous)
:
执行顺序:在同步编程中,代码按照书写顺序,一行一行地执行,每一行代码都必须等待上一行代码执行完毕后才能执行,如果在执行过程中,遇到耗时操作(如网络请求或大量计算),程序会阻塞,直到该操作完成。资源利用:同步编程对系统资源的利用率较低,因为在等待耗时操作完成期间,程序无法执行其他任务。适用场景:适用于,必须按照特定顺序执行,且不需要等待外部资源或异步操作的情况。
异步(Asynchronous)
:
执行顺序:在异步编程中,代码的执行顺序并非严格按照书写顺序,当遇到耗时操作时,程序不会等待该操作完成,而是继续执行后面的代码,当耗时操作完成后,再通过回调函数、Promise、async/await 等方式通知程序处理结果。资源利用:异步编程可以充分利用系统资源,因为在等待耗时操作完成期间,程序可以执行其他任务。适用场景:适用于那些需要等待外部资源(如网络请求、文件读写等)或异步操作的情况,以提高程序的响应速度和用户体验。
async、await
async 和 await,是JavaScript中用于处理异步操作的关键字,它们本身并不是同步或异步
,而是用于简化异步操作的语法糖
。
async函数
:
async函数,是用来定义一个异步函数的关键字,它会返回一个Promise对象,在async函数中,可以使用await关键字来等待一个Promise对象的状态变更,以实现同步的写法。
await关键字
:
await关键字,只能在async函数中使用,用于等待一个Promise对象的状态变更,当使用await关键字等待一个Promise对象时,代码会暂停执行,直到该Promise对象状态变为resolved或rejected,然后继续执行后续代码。
总结
:
async和await本身并不是同步或异步,它们是用于处理异步操作的语法糖,可以让异步操作以同步的方式来编写和理解。使用async和await,可以简化异步操作的编写,避免回调地狱和提高代码的可读性。
因此
,
async和await本身并不是同步或异步,而是用于处理异步操作的工具,它们可以让异步操作以更直观、简洁的方式来编写和管理。