收藏
回答

能不能把所有的异步方法改成Promise的

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 需求 异步所有api 微信iOS客户端 0.0.1 2.0.0

- 需求的场景描述(希望解决的问题)


每一次用异步的时候都要写一堆的回调,比如登录吧

wx.login({
    success: res => {}
});

当然还有其他的异步都需要这样的回调,不觉得很low吗?

说实话,这种写法都是几年前的方式了,既然时代在进步,为什么这些异步的方法不可以全部换成Promise的呢?


- 希望提供的能力

所有异步操作统一处理为Promise返回,例如登录

wx.login().then(res=>{
})



最后一次编辑于  2018-07-16  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

9 个回答

  • 木叶🐱
    木叶🐱
    2018-07-16

    用wepy框架吧,里面对很多api都做了再次封装,封装后的都改成了promise方式

    2018-07-16
    赞同 2
    回复 1
    • 请叫我红领巾
      请叫我红领巾
      2018-07-16

      可以试试,不过我还是希望官方改

      2018-07-16
      回复
  • 请叫我红领巾
    请叫我红领巾
    2018-07-13

    好像发错地方了。。。。不知道哪里可以给小程序开发团队提意见

    2018-07-13
    赞同 2
    回复
  • John
    John
    2018-07-17

    +1

    2018-07-17
    赞同 1
    回复 2
    • John
      John
      2018-07-17

      除了Promise 也希望官方支持Observable和RxJs的包装或者直接引用

      2018-07-17
      3
      回复
    • 请叫我红领巾
      请叫我红领巾
      2018-07-17回复John

      可以,我觉得都可以提

      2018-07-17
      1
      回复
  • ZZJ
    ZZJ
    2018-07-16

    现在是将官方的api改成promise来使用,感觉原有的回调有诸多不便。

    支持楼主!

    2018-07-16
    赞同 1
    回复 1
    • 请叫我红领巾
      请叫我红领巾
      2018-07-16

      多谢支持,总有那么一天的

      2018-07-16
      回复
  • Galina
    Galina
    2018-07-16

    +身份证号码

    2018-07-16
    赞同 1
    回复 4
    • Hoan
      Hoan
      2018-07-16

      官方是不会提供这些用户信息的,况且微信也没有存储身份证号信息吧?

      2018-07-16
      回复
    • Galina
      Galina
      2018-07-16回复Hoan

      额!我的意思跟+10086是一样的啊!


      强烈赞成楼主说法,不是要身份信息的意思啊。

      2018-07-16
      回复
    • 请叫我红领巾
      请叫我红领巾
      2018-07-16

      回复的那个笑死我,哈哈哈

      2018-07-16
      回复
    • 牧星长
      牧星长
      2018-07-17

      程序员难道不应该说 +65535 吗

      2018-07-17
      1
      回复
  • 霁雨思
    霁雨思
    2018-07-17

    这个话题,没什么意义,能实现就行了

    2018-07-17
    赞同
    回复 2
    • 请叫我红领巾
      请叫我红领巾
      2018-07-17

      这都什么年代了,还在用那么low的api,既使用不方便,维护也痛苦,为什么不做改变呢

      2018-07-17
      回复
    • 小峰、
      小峰、
      2018-07-25

      因为你得考虑我们这些初学开发者,官网的api简单易懂,初学者容易上手,一下就用promise、wepy那些,我们表示吃不消。

      2018-07-25
      回复
  • 嘎飞
    嘎飞
    2018-07-16

    使用 https://github.com/lyfeyaj/ewa 这个工具可以解决这个问题

    2018-07-16
    赞同
    回复 1
    • 请叫我红领巾
      请叫我红领巾
      2018-07-16

      还是让官方去解决吧

      2018-07-16
      回复
  • 木剑温小二
    木剑温小二
    2018-07-13

    现在的开发工具支持es6,可以写promise

    2018-07-13
    赞同
    回复 1
    • 请叫我红领巾
      请叫我红领巾
      2018-07-13

      我的意思是把api也直接改成Promise的

      2018-07-13
      回复
  • f番茄花园
    f番茄花园
    2018-07-13

    你可以给wx写个Proxy,对其所有异步方法做一层包装。其实实现起来很容易,不过坏处是iOS9及之前的版本基本上就凉凉了


    2018-07-13
    赞同
    回复 3
    • 请叫我红领巾
      请叫我红领巾
      2018-07-13

      治标不治本。。。还是希望改成Promise

      2018-07-13
      1
      回复
    • f番茄花园
      f番茄花园
      2018-07-13回复请叫我红领巾

      你不在意兼容性的话很治本 所有的调用看起来就都是promise了 唯一需要改的就是全局替换把wx换成wxProxy就行了 甚至如果你用ts的话连接口声明都不会影响到 而且这件事是你自己完全可以做的

      2018-07-13
      回复
    • 请叫我红领巾
      请叫我红领巾
      2018-07-13回复f番茄花园

      不过我还是希望官方去改,毕竟这样的api很落后,也是该往前的时候了

      2018-07-13
      1
      回复