问一个比较低级的问题,一个云函数,用于获取服务器时间,在后面的代码继续中要用到服务器时间。
云函数是这样的:
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
const date = new Date().getTime();
return date
}
调用是这样的:
let serverTime
wx.cloud.callFunction({
name: 'getTime',
success: res => {
console.log(new Date(res.result))
//赋值
serverTime=res.result
},
fail: res => {
console.error
}
})
//实际上我希望在这里使用serverTime。
console.log(serverTime)
实际上我不想把后续代码嵌套到云函数的success回调中,这样代码可读性差,不利于维护。
问题是我如何等待云函数返回,再执行console.log(serverTime)。
我尝试去研究了一下async/await,但未解决,当然setTimeout这种不科学的方法也是不可取的。
麻烦大哥帮忙改一下代码,谢谢。
用async/await
async xxx(){ let serverTime await wx.cloud.callFunction({name: 'getTime'}).then(res=>{ serverTime = res.result }).catch(e=>{ console.error(e) }) console.error('serverTime:', serverTime) }
若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人
单独写个方法,在success中调用,可读性也差不到哪里去。