promise
- promise 有三种状态 等待(pedding),成功(resolve) 拒绝(reject)
- promise.then 会等待promise内部resolve,并且promise的executor执行完,接着将.then里面的东西放入微任务队列。new promise.resolve().then(callback) callback也会放入微任务队列
- promise.then()的返回值始终是一个新的promise对象。promise的状态是.then回调的返回值。
- promise.then中的回调会等待前一个promise的resolve,前一个.then函数没返回值会等到执行完成之后自动resolve
- Promise.then会立即返回一个状态为pending的新Promise对象,这正是它能够支持链式调用的关键。
- new 的promise不会自动resolve,但是.then里面会自动resolve。
碰到.then 跳过 找同步代码执行完成 回来
catch跟then一样,都会将任务放入微任务队列中。
async await
- await 会等待右侧的promise完成之后将剩余代码放入微任务队列。
- async对显式返回创建的Promise的处理会安排一个额外的微任务。