收藏
回答

请教各位牛人 云函数调用的问题

问题模块 框架类型 问题类型 终端类型 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


最后一次编辑于  2018-09-26  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

1 个回答

  • 在路上
    在路上
    2018-09-26

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

     

    }

    的方式获取返回数据

    2018-09-26
    赞同
    回复