作用
LeanCloud云代码的包装,包含一些额外操作,例如错误处理、请求返回的包装。它派生于
CallbackList
概念
默认位置
APP_PATH/cloud/functions
,这个类型只在初始化时使用,而初始化过程就是依次读取这个目录中每个文件的过程。
实现
当初始化完成后,系统自动通过freeze()
方法进行“冻结”,以准备好被调用。初始化和冻结时,分别在任务列表前后插入一个任务。
第一个任务的作用是将输入转换成一个
InputChecker
最后一个任务的作用是返回数据给客户端。在返回任务现在的实现中,允许两种返回方式:
- 最后一个自定义任务返回一个对象
- 调用
CloudCodeRuntime
(即this)的assign
方法
不论返回值是什么,只要没有status字段,都会添加一个 status=0 到结果中。
API
构造函数(String name, CallbackList thisArg)
name
:立即调用 setName()
确定这个云代码的名字thisArg
:可选,可以用一个 CallbackList
对象代替 this
setTitle(String title)
内部函数,自动调用。设置云代码的名字,用于日志
title=云代码的名字(
AV.Cloud.define
的第一个参数)
setName(String name)
用于调试,指示这个云代码是做什么的,它会出现在日志中。一般通过构造函数的第一个参数调用
freeze()
内部函数,自动调用。 “冻结”这个CloudCodeWrapper
,它不再拥有继承自
CallbackList
的方法。也就是不能再向其中添加新任务。此时这个 CloudCodeWrapper
才可以注册给
AV.Cloud.define
。runner(Request req, Response rsp)
这个对象的主要处理函数参数要求 “云代码” 的request和response对象(不能是express的)
这个方法将成为
AV.Cloud.define
的第二个参数
call(Object params)
手动调用这个云代码返回Promise,用云代码的结果resolve(或错误reject)
可以通过它调用当前项目自身的云代码函数而不必产生没必要的http请求