收藏
回答

小程序如何在一个生命周期函数内顺序执行方法?

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 需求 客户端 7 1.02

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

onLoad: function (options) {

    var that = this;

    wx.getStorage({

     key: "id",

     success: function(res) {

     that.setData({

     id: id

     })

     }

    })

    that.showInfos();

},

showInfos: function(e) {

    console.log(this.data.id);

}


如上代码,运行后that.showInfos()会先执行,wx.getStorage后执行,那么久无法获得预期的id值,请问如何保证让wx.getStorage先执行,that.showInfos()后执行?


- 希望提供的能力

onLoad()里先执行wx.getStorage, 再执行that.showInfos()。

回答关注问题邀请回答
收藏

6 个回答

  • 飘落的叶
    飘落的叶
    2019-01-21

    用new Promise,比回调好,自己百度去查查,很多的

    2019-01-21
    有用 2
    回复
  • 沃德天·维森陌·拉莫帅🌝
    沃德天·维森陌·拉莫帅🌝
    2019-01-21

    that.showInfos()丢到wx.getStorage的success方法里面去执行不就可以了吗,或者用wx.getStorageSync。。。

    2019-01-21
    有用 2
    回复
  • 连胜
    连胜
    2019-01-21

    wx.getStorage为异步操作,可以改成wx.getStorageSync即可

    2019-01-21
    有用 1
    回复
  • 静静的发呆
    静静的发呆
    2019-01-21

    想想也是哦,老铁们这么一说,我似乎有点迷糊了。

    那微信小程序有什么方法可以实现方法的顺序执行?

    2019-01-21
    有用
    回复
  • จุ๊บ
    จุ๊บ
    2019-01-21

    这样试试呢?

    onLoad: function (options) {

        var that = this;

        wx.getStorage({

         key: "id",

         success: function(res) {

         that.setData({

         id: id

         })

                    that.showInfos();   //放在success方法里面执行

         }

        })

    },

    showInfos: function(e) {

        console.log(this.data.id);

    }


    2019-01-21
    有用
    回复
  • ==
    ==
    2019-01-21

    放在wx.getStorage成功回调里面!!

    2019-01-21
    有用
    回复
登录 后发表内容