收藏
评论

小程序改造成async/await模式

补充:以下是原生用法:

https://developers.weixin.qq.com/community/develop/article/doc/00028cbc2e04e0ddf549d535351c13


简单两步:

1、把这个文件下载并引用进来:

https://github.com/facebook/regenerator/blob/master/packages/regenerator-runtime/runtime.js


2、在使用时声明一下:

const regeneratorRuntime =  require('./lib/runtime.js')


然后就可以使用async/await了。


补充如下:以上方案已经过期作废,小程序原生支持async/await了,(es6转es5别勾)

最后一次编辑于  2020-04-01
收藏

13 个评论

  • 梁伟健
    梁伟健
    2019-08-21

    算了,我还是用嵌套吧,太恶心了

    2019-08-21
    赞同 3
    回复
  • 陈由梅
    陈由梅
    2020-07-23

    说实话,微信版本问题一直是硬伤,小程序新出的很多新功能完全没法用

    2020-07-23
    赞同 1
    回复 1
    • 老张
      老张
      2020-07-23
      请举例说明,不要一棒子打死。
      2020-07-23
      回复
  • 54青年人
    54青年人
    2023-03-23

    虽然现在已经支持直接使用async await,但是有些ios手机还是会阻断,不能用,问题手机又iphone12,13,6s等,有ios10以上的,都出现这问题,测过的手机有一些是买到手机后就没升级过ios系统,但是微信版本是最新的,所以最后我都改成then模式写代码了,不知道各位大佬有没有好的解决办法

    2023-03-23
    赞同
    回复
  • 小肥羊🍊
    小肥羊🍊
    发表于小程序端
    2020-04-01
    优秀
    2020-04-01
    赞同
    回复
  • 厉江伟
    厉江伟
    2019-08-24

    关闭es6转es5之后async/await确实能用了,但是import语句报错了  这该咋整??

    2019-08-24
    赞同
    回复 2
    • 老张
      老张
      2019-08-24
      改成require?
      2019-08-24
      回复
    • 老张
      老张
      2020-04-01回复老张
      嗯,我目前也只能这样,没找到解决办法,require可用。
      2020-04-01
      回复
  • Mask.
    Mask.
    2019-04-25

    老哥。按照您的方法引入了。报这个了。

    2019-04-25
    赞同
    回复 13
    • 老张
      老张
      2019-04-25

      我想知道,是什么原因非要勾es6转es5?

      另:看提示,是你自己代码的问题,没看到你的代码,不好说。

      2019-04-25
      回复
    • Mask.
      Mask.
      2019-04-25

      因为要兼容低版本的IOS。我用了async .然后是引入了这个转换后代码出错了。




      2019-04-25
      回复
    • 老张
      老张
      2019-04-25回复Mask.

      const regeneratorRuntime = global.regeneratorRuntime = require('./lib/runtime.js')

      试试这样。(我们都已经转成原生async了)

      另:iphone5、 ios10.3、 微信6.7, 我测试已经原生支持async/await了,(但部分不支持...扩展运算)。

      除了ios9,还能有比它更低的了?占比太少了,可以不考虑支持。

      2019-04-25
      回复
    • Mask.
      Mask.
      2019-04-25

      找到问题了。写的函数表达式转化完成了。但是最后才对regeneratorRuntime进行实例化。所以上面的的regeneratorRuntime取不到方法。

      2019-04-25
      回复
    • 哈哈哈
      哈哈哈
      2019-04-25回复Mask.

      我也遇到这个问题了 Cannot read property 'mark' of undefined  请问时怎么解决的呀

      2019-04-25
      回复
    查看更多(8)
  • 伍成平
    伍成平
    2019-03-24

    照着做的呀,为什么不行啊,大侠




    2019-03-24
    赞同
    回复 7
    • 老张
      老张
      2019-03-24

      别再按这个做了。

      小程序已经原生支持async/await了,直接用就行了。

      2019-03-24
      回复
    • 伍成平
      伍成平
      2019-03-25回复老张

      好好学了一把,基本搞懂客户端async/await处理,非常感谢

      2019-03-25
      回复
    • 哈哈哈
      哈哈哈
      2019-04-26

      兄弟你时怎么解决的呀

      2019-04-26
      回复
    • 伍成平
      伍成平
      2019-04-26回复哈哈哈

      es6转es5别勾

      2019-04-26
      回复
    • 哈哈哈
      哈哈哈
      2019-04-26回复伍成平

      这好像不行,老项目了不钩的话报错很多

      2019-04-26
      回复
    查看更多(2)
  • Peter👊
    Peter👊
    2019-01-25

    不论是云开发还是小程序里面,我都用过了。看到还要引入文件就很是不解

    2019-01-25
    赞同
    回复
  • 2019-01-15

    楼主 我这边 一直 报  await is a reserved word 错误,是什么原因

    2019-01-15
    赞同
    回复 1
    • 老张
      老张
      2019-01-15

      没有代码,不知道。

      async await 没有成对出现呗。

      2019-01-15
      回复
  • 老张
    老张
    2019-01-08

    经过测试,有的手机(我用小米8)测试,微信最高版,基础库最高版:原生支持async/await。

    但有可能有些手机的系统版本低,微信版本低,可能不支持async/await。所以可能还需要这个方案,保险起见,还是按这个方案来写。

    2019-01-08
    赞同
    回复

正在加载...

登录 后发表内容