收藏
回答

getUserInfo和checkSession建议增加同步方法

问题模块
API和组件

很多页面可能需要登录状态和用户信息作为前置条件。在某些时候checkSession执行的非常慢,而getUserInfo第一次吊起又会有授权弹窗,但是又不阻塞js的执行,那么以后的操作都必须写在回调里。这样的话每个页面都需要写回调函数,而没办法在app.js直接初始化,从而减少开发成本。

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

7 个回答

  • marginyu
    marginyu
    2017-09-06

    可以参考下这篇文章: http://www.jianshu.com/p/ff931fab42cb

    2017-09-06
    赞同
    回复
  • yuhao
    yuhao
    2017-07-25

    试试二楼思路,还是不错的

    2017-07-25
    赞同
    回复
  • 胡仲春
    胡仲春
    2017-07-25

    是的 我知道可以这样做,我的意思就是说 不想每个页面都要去回调

    2017-07-25
    赞同
    回复
  • maq
    maq
    2017-07-25

    你可以在 app.js 里面定义一个 myGetUserInfo() 函数供每个页面调用,里面封装了所有 wx.login、wx.getUserInfo、wx.checkSession 的实现细节,这样就简单了。


    但是,每个页面仍然要提供一个回调函数给 myGetUserInfo() 来处理返回结果。

    2017-07-25
    赞同
    回复
  • 胡仲春
    胡仲春
    2017-07-25

    楼上说的都没错,可能我没表达清楚,主要的问题就是,不希望每个页面都去写回调,在app.js里直接处理就行了

    2017-07-25
    赞同
    回复
  • maq
    maq
    2017-07-25

    用 js 写程序,必须习惯异步模式啊,在回调函数里处理返回结果是常态,你可以通过一些设计模式(比如 Promise)来简化代码。


    除非……等小程序的 js 支持新版本的“协程(形式同步)”,呵呵

    2017-07-25
    赞同
    回复
  • yuhao
    yuhao
    2017-07-25

    你第一次调用,保存在服务器里,后面就不需要了呀,每次请求检查一下session有效时间 就可以了,

    不是每次都要有回调的。

    2017-07-25
    赞同
    回复