async await 和promise区别

141 阅读1分钟
  1. 语法上的区别:使用 Promise 时需要通过 .then() 方法链式调用,而使用 async/await 可以通过 await 关键字直接获取异步操作的结果。

  2. 错误处理的方式:使用 Promise 时,需要在 .then() 中通过回调函数处理可能出现的错误,而使用 async/await 时,可以通过 try/catch 来捕获错误,使代码更加简洁易读。

  3. 执行顺序的不同:使用 Promise 时,异步操作会被放到宏任务队列中等待执行,在主线程完成同步代码后才会执行异步操作。而使用 async/await 时,异步操作会立即执行,并且不会阻塞后续代码的执行。

  4. 内部实现的不同:async/await 实际上是基于 Promise 的封装,使用 async/await 时会自动将异步操作包装成一个 Promise 对象,然后使用 Promise 的方式来处理异步操作的结果。

综上所述,async/await 是一种更加直观、简洁、易读的处理异步操作的方式,可以更好地提高代码的可读性和可维护性。但在一些旧版的浏览器中可能不支持 async/await,此时可以使用 Promise 来代替。