1、Promise 是一个构造函数, Promise.prototype 上包含一个 .then() 方法。 .then() 方法用来预先指定成功和失败的回调函数。
通过 .catch 捕获错误;Promise.all() 方法会发起并行的 Promise 异步操作,等所有的异步操作全部结束后才会执行下一步的 .then 操作(等待机制)。Promise.race() 方法会发起并行的 Promise 异步操作,只要任何一个异步操作完成,就立即执行下一步的 .then 操作(赛跑机制)。 Promise是js中的一个原生对象,是一种异步编程的解决方案,Promise 支持链式调用,从而来解决回调地狱的问题可以替换掉传统的回调函数解决方案。 但是Promise最大的问题就是代码冗余
2 、async/await
可以使得异步代码看起来更像是同步代码。async/await 是 ES8(ECMAScript 2017)引入的新语法,用来简化 Promise 异步操作。在 async/await 出 现之前,开发者只能通过链式 .then() 的方式处理 Promise 异步操作.
async/await 的 使用注意事项
用来异步转同步
① 如果在 function 中使用了 await,则 function 必须 被 async 修饰 await放在异步操作前面
② 在 async 方法中,< 第一个 await 之前的代码会同步执行 ,await 之后的代码会异步执行
async关键字,他作为一个关键字放到声明函数前面,表示该函数为一个异步任务,不会阻塞后面函数的执行。async函数返回数据时自动封装为一个Promise对象。和Promise对象一样,处理异步任务时也可以按照成功和失败来返回不同的数据,处理成功时用then方法来接收,失败时用catch方法来接收数据。await关键字只能在使用async定义的函数中使用。