1.Promise
Promise 表示一个异步操作的最终完成(或失败)及其结果值。它是一个对象,有三种状态:
Pending(等待):初始状态,未完成。
Fulfilled(已完成):操作成功完成。
Rejected(已拒绝):操作失败。
特点:
通过链式调用(.then()、.catch())管理异步流程。
支持链式操作,避免回调地狱(Callback Hell)。
可以组合多个 Promise(如Promise.all、Promise.race)
2.async
async用于声明一个函数为异步函数。异步函数默认返回一个 Promise 对象:
如果函数返回一个值,Promise 会自动解析为这个值。
如果函数抛出错误,Promise 会被拒绝。
关键点:
异步函数内部可以使用await。
非阻塞:异步函数不会阻塞主线程。
3.await
await只能在async函数内部使用。它的作用是暂停异步函数的执行,等待一个 Promise 完成,并返回 Promise 的结果。
关键点:
await会阻塞当前async函数内的代码,但不会阻塞主线程。
如果等待的 Promise 被拒绝,会抛出异常,需要用try/catch处理错误。
await 必须与 Promise 配合使用,它会等待 Promise 状态变为 fulfilled 或 rejected。
4.错误处理
Promise:使用.catch()或在.then()中处理错误。
async/await:使用try/catch捕获错误。