在学习中,想实现一个置顶功能,用云函数定时器,到时间删除字段实现取消置顶功能,调用成功,返回的结果是null,是什么问题?
云函数代码:
定时器:
{
"permissions": {
"openapi": [
]
},
"triggers":[
{
"name":"mytimer",
"type":"timer",
"config":"*/30 * * * * * *"
}
]
}
执行代码:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
const _ = db.command
// 云函数入口函数
exports.main = async (event, context) => {
exports.schedule = {
run:async() => {
const currentTime = new Date().getTime();
return await db.collection("wehicle").where({timelength:topping.timelength}).watchChanges({
onChange:snapshot => {
snapshot.docs.forEach(doc => {
if(doc.topping.timelength < currentTime){
await db.collection("wehicle").doc(doc._id).update({
data:{
topping:_.remove()
}
})
}
})
}
})
},
}
}
exports.main = async (event, context) => { const currentTime = new Date().getTime(); return await db.collection("wehicle").where({timelength:topping.timelength}).watchChanges({ onChange:snapshot => { snapshot.docs.forEach(doc => { if(doc.topping.timelength < currentTime){ await db.collection("wehicle").doc(doc._id).update({ data:{ topping:_.remove() } }) } }) } }) }
我在JS里面写的
打印就像图片这样
db.collection("wehicle").watch({
onChange:snapshot => {
console.log(snapshot.docs)
snapshot.docs.forEach(doc => {
console.log(doc._id);
console.log("topping",doc.topping);
// console.log("topping",doc.topping.timelength);
})
},
onError:err => {
console.log(err)
}
})
你这个没有写返回的数据啊,要 return结果才会有返回
data:{
topping:_.remove()
}
})
是不是在这个地方return?
但是报错,就是我再把return删除,和之前一样的代码也是报错,这是什么情况?