异步编程与Promise的关系
Promise是异步编程的一种解决方案,将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数,是为了解决异步处理回调而产生的
Promise构造函数是同步执行的,then 方法是异步执行的,所以Promise创建后里面的函数会立即执行,构造函数中的resolve和reject只有第一次执行有效,,也就是说Promise状态一旦改变就不能再变
Promise的作用与用法
Promise有三个状态:pending(初始状态),fulfilled(成功状态),rejected(失败状态)。
两个状态:pending>fulfiled ; pending >rejected
1.Promise.resolve()函数被执行时, 会将promise的状态从 pending 改成 fulfilled 成功
2.Promise.reject()函数被执行时, 会将promise的状态从pending 改成 rejected 失败
Promise.then()方法 是处理Promise在成功状态下的回调函数
Promise.catch() 方法是处理Promise在失败状态下的回调函数
Promise.finaly()方法是在 promise 结束时,无论结果是 fulfilled 或者是 rejected,都会执行指定的回调函数
Promise.race()方法返回一个 promise,一旦迭代器中的某个 promise 解决或拒绝,返回的 promise 就会解决或拒绝
async/await的作用与用法
被async定义的函数会默认返回一个Promise对象resolve的值
async 函数可能包含 0 个或者多个await表达式。await 表达式会暂停整个 async 函数的执行进程并出让其控制权,只有当其等待的基于 promise 的异步操作被兑现或被拒绝之后才会恢复进程。promise 的解决值会被当作该 await 表达式的返回值。