为了账号安全,请及时绑定邮箱和手机立即绑定

关于异步获取数据后,如何return到最外层函数?

关于异步获取数据后,如何return到最外层函数?

慕桂英3389331 2019-02-07 14:11:17
在开发小程序时,需定义一个转发事件,将{path: shareId,}返回给最外层函数onShareAppMessage,代码如下:const onShareAppMessage = (para) => {    let shareId;    wx.request({        url: 'https://xxx/xxx.php',        data: {para:para},        success: function (res) {            shareId = res.data.shareId        }    })    return {        path: shareId,    }}其中,wx.request就跟$.ajax差不多,但是只能异步获取数据,不能同步,所以return回去的对象{path: shareId}中shareId是undefined。如果将return写在sunccess里,能保证shareId正确赋值,但是不能将对象返回到外层的onShareAppMessage了。请问此问题该如何解决?首先感谢各位的回答,可能我没表达清楚我的问题。我是要将异步的数据return给外层的函数,不是用promise改变代码格式!
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

因为结果是异步返回的,所以你不能使用同步的方式-即直接获得结果,所以你不知道该解决获得结果之后的处理过程和这个不能直接获得的结果,之间矛盾。

解决的办法是使用callback,将上面提到的得到结果之后需要做的事情放在这个callback里,在得到结果之后执行callback即可。


查看完整回答
反对 回复 2019-02-21
  • 1 回答
  • 0 关注
  • 2001 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信