请教各位牛人 云函数调用的问题
发布于 6 年前 作者 vkang 3547 次浏览 来自 问答

当我调用云函数时, 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

1 回复

 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){

 

}

的方式获取返回数据

回到顶部