收藏
回答

云函数定时器,出发显示调用成功,返回的是null?

在学习中,想实现一个置顶功能,用云函数定时器,到时间删除字段实现取消置顶功能,调用成功,返回的结果是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()
                            }
                        })
                    }
                })
            }
        })
    },
   }
}
回答关注问题邀请回答
收藏

2 个回答

  • Mr.Zhao
    Mr.Zhao
    10-15
    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()
                                }
                            })
                        }
                    })
                }
            })
    }
    
    10-15
    有用
    回复 9
    • 蓝天☁
      蓝天☁
      10-16
      报这个错了,是不是timelength这个结束时间不能添加到topping里面?在JS里面试过,打印topping,如果没有topping,打印的是undefined,没有报错,如果打印topping.timelength就会报错timelength为undefined
      10-16
      回复
    • Mr.Zhao
      Mr.Zhao
      10-16回复蓝天☁
      watchChanges  文档发一下。报错跟你说的都不是一回事
      10-16
      回复
    • 蓝天☁
      蓝天☁
      10-16回复Mr.Zhao
      watchChanges 这个还有个文档?我就是网上找的一些,然后改的。
      我在JS里面写的


      打印就像图片这样
      10-16
      回复
    • 蓝天☁
      蓝天☁
      10-16回复Mr.Zhao
      数据库就是图片这个
      10-16
      回复
    • Mr.Zhao
      Mr.Zhao
      10-16回复蓝天☁
      没有文档就瞎写啊
      10-16
      回复
    查看更多(4)
  • 念,
    念,
    10-15

    你这个没有写返回的数据啊,要 return结果才会有返回

    10-15
    有用
    回复 1
    • 蓝天☁
      蓝天☁
      10-15
      return await db.collection(“wehicle”).doc(doc._id).update({
                                  data:{
                                      topping:_.remove()
                                  }
                              })
      是不是在这个地方return?
      但是报错,就是我再把return删除,和之前一样的代码也是报错,这是什么情况?
      10-15
      回复
登录 后发表内容