问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 微信小程序 Bug 工具 wx13133e9ce6fc7afd 2.2.5
当我调用云函数时, wx.cloud.callFunction() 在没有收到 success或 fail通知时就直接返回到调用方了.然后过一会 success: function (res) 又被调用一次, 我需要 调用 wx.cloud.callFunction()云函数后等待结果才返回给调用方.
给位大牛给分析下看看什么原因,谢谢!
云函数:
// 云函数入口函数
exports.main = async (event, context) => {
return{
serverTime: Date()
}
}
微信小程序函数:
function getServerTime() {
wx.cloud.callFunction({
// 云函数名称
name: 'getServerTime',
// 传给云函数的参数
data: {
},
success: function (res) {
var serverDate = new Date(res.result.serverTime);
return {
retValue: true,
date: serverDate
}
},
fail: function (res) {
return {
retValue: false,
date: null
}
}
})
}
module.exports.getServerTime = getServerTime
微信小程序开发问题解答
微信小程序开发者回答:
getServerTime函数应该采取回调函数的方式获取返回数据,不应该用return返回数据,你的数据返回方式用的是同步函数的方式,而网络请求明显是异步操作,如果在调用是使用XXX= getServerTime()的方式获取返回数据必然会获取到空值。
function getServerTime(callbak) {
wx.cloud.callFunction({// 云函数名称name: 'getServerTime',// 传给云函数的参数data: {},success: function (res) {var serverDate = new Date(res.result.serverTime);callbak( {retValue: true,date: serverDate})},fail: function (res) {callbak( {retValue: false,date: null})}})
}
module.exports.getServerTime = getServerTime
在调用函数时使用
getServerTime(
function(res){
}
)
的方式获取返回数据
本文网址:http://www.91bianli.com/weixinxiaochengxu/46838.html