1. 什么算异步?
    如:读取文件
    ajax 申请
    定时工作 setTimeout 等

Promise 将异步工作封装成对象,在异步实现后要执行的函数通过 then 给到 resolve 调用

之所以会封装Promise是因为我有异步工作要解决,例如一个申请 一个定时器工作
而后我须要在这些工作之后做一些事件 又不想天堂回调,所以我用 Promise 来封装

return new Promise((resolve, reject) => {    try() {        resolve()    } catch() {        reject()    }})

Promise 作用:1.防止天堂回调,反对链式调用
2.捕捉谬误(通过报错/通过 reject())

resolve: 将异步工作从pending申请变为resolve胜利返回
reject: 从申请变为失败
pending: 申请中

对于链式调用,catch 是对整个链式进行谬误捕捉。链式写法的错误处理具备“冒泡”个性,链式中任何一个环节出问题,都会被catch到,同时在某个环节前面的代码就不会执行了(catch挪动地位非凡解决,例如 未写在最初 )catch完如果还有then还会持续往下走

Promise.all 并行执行

async/await 的呈现时为了解决多个.then 的链式回调,写法更优雅。当须要对某个异步工作捕捉异样时,就用 try catch

用 await 申明的 Promise 异步返回,必须期待到有返回值。(留神 setTimeout 不是Promise 异步,只是一般异步)

finally 办法用于指定不论 Promise 对象最初状态如何,都会执行的操作