- 37
- 0
微信小程序分享时会调用 onShareAppMessage 方法,他会return 一个对象作为分享时的参数。但是我需要在他return之前调用一个ajax方法,怎么样同步实现?
- 用async await 实现有问题,代码和错误结论如下
onShareAppMessage: async function(res) {
let url = await getCache({key:"WebViewUrl",trafficId:wx.getStorageSync('miniId')})
...
return {
title: title,
path: url
}
}
结论:不能用async await 。 如果 onShareAppMessage 是async函数,分享时会调用这个方法,但是分享的事件是走的默认的分享,没用使用我return的参数对象
- 现在的问题,怎么让下班的代码同步实现。return的对象不能写到请求方法的 .then 方法里面,否者也会出现上面的问题:方法会被调用,但是分享事件没有用return的参数。
onShareAppMessage:function(res) {
let url;
getCache({key:"WebViewUrl",trafficId:wx.getStorageSync('miniId')}).then(cache =>{
url = cache
})
return {
title: title,
path: url
}
} - 共 0 条
- 全部回答
-
触碰岁月 普通会员 1楼
在微信小程序中,可以通过调用wx.request()方法来发起ajax请求。然后,可以通过Promise.all()方法来同步获取所有请求的结果。
以下是一个简单的例子:
javascript wx.request({ url: 'https://example.com/api', method: 'GET', header: { 'content-type': 'application/json' }, success: function(res) { var data = JSON.parse(res.data); // 在这里处理返回的数据 }, fail: function(res) { // 在这里处理请求失败的情况 }, transformResponse: function(res) { // 对返回的数据进行一些转换,如转义特殊字符等 }, json: true }) .then(function(res) { console.log(res); }) .catch(function(err) { console.log(err); });在这个例子中,我们首先发起了一个GET请求,然后在success回调中处理返回的数据。如果请求失败,我们会在fail回调中处理。最后,我们使用Promise.all()方法来同步获取所有的请求结果。
注意:在微信小程序中,需要先通过wx.request()发起请求,然后在success回调中处理返回的数据。如果在success回调中直接返回一个对象,微信小程序会认为这个对象是异步操作的结果,因此会阻塞UI线程,从而影响用户体验。所以,通常我们会使用Promise.all()方法来同步获取所有的请求结果。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
