在小程序开发时,衡胡我们请求数据,就需要使用promise或者async处理异步请求,避免掉入回调地狱。而async号称是解决回调地狱的最终方案,平时我也是比较喜欢使用的,但是作为es7的语法,小程序的开掘判发者工具貌似不支持es7
那么要如何让开发工具支持呢?
(注:不可全局引入,否则无效)
该方法存在兼容性,若要适配某些旧的手机或者小程序时,请勿使用判拦改本方法
2.使用promise处理异步
3.使用async
1.在小程序根目录用npm init命令生成package.json文件
2.安装依赖:npm i regenerator-runtime -S; 注意:-S表示装在dependencies依赖下空雀面,后续纯亏缓做模步骤中,小程序npm构建是读dependencies字段的;
在需要使用async、await关键字的地方引入regenerator-runtime
有很多 async 的面试题,例如
等虚氏等,需要找出一个规律
用同步的方式,编写异步。
和 Promise 的关系
async函数返回结果都是Promise对象(如果函数内没返回盯槐Promise,则自动封装一下)
await后面跟Promise对象:会阻断后续代码,等待状态变为resolved,才获取结果并继续执行
await后续跟非Promise对象:会直接返回
总结来看:
异步本质
await是同步写法, 但本质还是异步调用 。
即,只要遇到了await,后面的代码都相当于放在 callback 里。
for...of
定时算乘法
执行 async 函数执行返回的是 Promise 对象
await 相当于 Promise 的 then
try...catch 可捕获异常,代替 Promise 的 catch
右上图差则散解读: async返回Promise,await返回then,await后面报错会终止执行,可以用try...catch来捕获
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)