[LayaAir 2.0]Laya如何使用Promise、async、wait分享!

很多开发者可能也遇到了这个问题,Laya2.3版本前还可以用,为什么2.4之后就用不了?直接切入主题:Promise 可以用!
在这里要特别感谢来自LayaBox交流群群主大佬:北京_益达~”,以下链接资源均出自这位大佬之手整理,感谢!。
2.4及以上的版本使用Promise中的async 和 await 会出现以下现象:
QQ图片20200903123838.png

QQ截图20200903123901.png

 
解决方法1:在IDE项目中使用npm命令:npm install tslib   或  npm  i ,
会构建出该项目本地的node_modules 如下:
QQ截图20200903130300.png

这样就可以正常运行了。
参考资料,Layabox2.3.0如何配置代码编辑器(WebStorm2019):http://blog.asroads.com/post/3f34ea36.html  
QQ截图20200903125003.png

 
 
解决方法2:在tsconfig.js中配置添加lib,promise
QQ截图20200903125221.png

重点:
在 target 为 es5 或 es6 的时候,TypeScript 会有默认的 lib 列表,这在官⽅⽂档中有详细
说明。 target 定义为 es2017 是为了⽀持 async 函数,但这个配置没有默认 lib 列表,所以
参考官⽅⽂档对 --target es6 使⽤的 lib 列表,补充 es2017 类型库即可。

QQ截图20200903131337.png

其实就是说,如果 target 不是 es2017 就是不⽀持 async 函数,这样 上⾯的问题的产⽣,已经解决
⽅案就显得顺利成章了!


参考资料,从 JavaScript 到 TypeScript - 模块化和构建https://segmentfault.com/a/1190000008996172  
Promise异步相关资料:https://segmentfault.com/a/1190000013171493 
 
最后,Promise 并不是引擎提供的方法,所以大家抱怨Laya,说某某引擎比Laya好等等,其实也没啥意义。Laya有些地方确实涉及范围比较多,门槛比较高,希望大家今后能相互帮助,相互学习,共同进步,希望Laya的社区能够有越来越多的开发者贡献自己的知识!!
 
 
 
 
 
已邀请:

陆仁毅

赞同来自: 辉先生

还可以把tsconfig-target&module改到esnext,编出来的js总体使用 Babel 工具转换一下。
而且现在 Babel 环境包可以说是非常方便的(https://www.babeljs.cn/

要回复问题请先

商务合作
商务合作