Promise
1.promise是异步操作解决方案
(1).主要用于异步计算
(2).可以将异步操作队列化
(3).通过链式 .then 来解决地狱回调问题
(4).promise一旦创建就会立即执行,不会取消
2.promise的构造函数有两个参数,一个是resolve,用.then来接受。另一个是reject,用.catch来接收
3.promise特性
promise对象的状态不受外界影响
promise状态一旦改变,就不会在改变,状态是不可逆的,只能由pending改为fulfilled(成功)或者改为rejected(失败)
4.promise的API
Promise.prototype.catch
捕获错误信息,当代码执行报错时不会显示到页面上,而是走向catch这个方法
Promise.race
类方法,多个 Promise 任务同时执行,返回最先执行结束的 Promise 任务的结果,不管这个 Promise 结果是成功还是失败。 。
Promise.all
类方法,多个 Promise 任务同时执行。
如果全部成功执行,则以数组的方式返回所有 Promise 任务的执行结果。 如果有一个 Promise 任务 rejected,则只返回 rejected 任务的结果。
5.promise应用场景
封装ajax,axios的get,post封装,
微信小程序中封装wx.request(),
uniapp开发中uni.request()
async await
async/await从字面意思上很好理解,async是异步的意思,await有等待的意思,在用法上。async用于申明一个function是异步的,而await 用于等待一个异步方法执行完成。
async
async关键字的意思很简单,就是函数返回的是一个promise。
async函数会返回一个promise对象,如果function中返回的是一个值,async直接会用Promise.resolve()包裹一下返回。
await
关键词await是等待的意思,等的是一个表达式,那么表达式,可以是一个常量,变量,promise,函数等。
为什么await关键词只能在async函数中用
因为阻塞代码是一个很可怕的事情,而async函数,会被包在一个promise中,异步去执行。所以await只能在async函数中使用,如果在正常程序中使用,会造成整个程序阻塞,得不偿失。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。