小程序
小游戏
企业微信
微信支付
扫描小程序码分享
需求描述:
在点击分享按钮后,请求接口(业务要求,一定要点击分享后才调接口),接口成功后执行自定义的分享内容
解决方案:
使用async和await,保证接口请求成功后才执行自定义内容。
问题:
代码按顺序执行,但是自定义的分享内容却未生效。
请教原因
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你需要对async和await有个基本了解
不准确的来说……可以无脑认为async方法返回的是一个Promise
对于外层来说需要对promise进行then或者await以获取Promise的返回值
对于你的情况来说,onShareAppMessage方法默认是个同步方法,微信框架内对其调用方式可以简化认为是
const sharingURL = page.onShareAppMessage()
如果你把onShareAppMessage定义成一个async方法,则对于微信框架拿到一个Promise,不报错就很对得住你了
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
感谢
了解了,最后还是要提前获取数据。
分享已经改了,监测不到分享成功和失败了,接口请求需要时间,不在一个线程中,肯定会有问题
我的return在await function后面,按我对async/await的理解,是执行完await function后,才会执行return。
为什么不是同一个线程?,不是很懂你的意思
把return写在请求成功里面试试,本身分享就是微信封装好了的,里面的实现逻辑我们是不知道的
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你需要对async和await有个基本了解
不准确的来说……可以无脑认为async方法返回的是一个Promise
对于外层来说需要对promise进行then或者await以获取Promise的返回值
对于你的情况来说,onShareAppMessage方法默认是个同步方法,微信框架内对其调用方式可以简化认为是
const sharingURL = page.onShareAppMessage()
如果你把onShareAppMessage定义成一个async方法,则对于微信框架拿到一个Promise,不报错就很对得住你了
感谢
遇到过这个问题,onShareAppMessage是个同步过程,不管你用Promise或await,
onShareAppMessage返回的还是undefined
了解了,最后还是要提前获取数据。
分享已经改了,监测不到分享成功和失败了,接口请求需要时间,不在一个线程中,肯定会有问题
我的return在await function后面,按我对async/await的理解,是执行完await function后,才会执行return。
为什么不是同一个线程?,不是很懂你的意思
把return写在请求成功里面试试,本身分享就是微信封装好了的,里面的实现逻辑我们是不知道的