在开发小程序时,需定义一个转发事件,将{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即可。
添加回答
举报
0/150
提交
取消