Skip to content

Latest commit

 

History

History
74 lines (55 loc) · 2.46 KB

invoke-function.md

File metadata and controls

74 lines (55 loc) · 2.46 KB

调用云函数

该模块允许用户创建、编写运行于知晓云云引擎上的代码。适用于一些对安全性有要求,功能复杂、需求个性化的业务场景。配合触发器可以帮助开发者实现功能复杂的小程序。

BaaS.invokeCloudFunc(funcName, data, sync, callback)

{% block tips1 %}

info 调用云函数,需要先在控制台创建云函数 [控制台 - 云函数](https://cloud.minapp.com/dashboard/#/app/[[app_id | addSlashPostfixIfNotEmpty]]engine/cloud-function/function/) 新建云函数

{% endblock tips1 %}

参数说明

参数 类型 必填 说明
functionName String 云函数名
data String 传递给云函数的参数(这里输入 json 字符串,sdk 会把 json 字符串序列化为 json 类型)
sync Bool 是否等待返回函数执行结果,默认为 true。同步与异步云函数有不同的超时时间,同步云函数为 5 秒,而异步云函数为 5 分钟(300 秒)

返回参数说明

参数 类型 描述
code Integer code 为 0 表示正常返回,1 表示异常返回
data 由云函数返回的数据类型决定(sdk 序列化为 JsonElement) 函数通过 callback 返回的数据
error JosnElement 返回的错误信息,正常返回则返回空对象

请求示例

假设已经创建了一个云函数 helloWorld,其接受一个 name 作为参数,返回 hello ${name}。云函数代码如下:

exports.main = function helloWorld(event, callback) {
  console.log(event)
  callback(null, `hello ${event.data.name}`)
}

可在小程序中通过以下方式进行调用云函数:

String funcName = "helloWorld";
String data = "{\"name\":\"allen\"}";
BaaS.invokeCloudFunc(funcName, data, null, new BaseCallback<CloudFuncResp>() {
    @Override
    public void onSuccess(CloudFuncResp cloudFuncResp) {
        if (cloudFuncResp.getCode() == 0) {
            // 调用成功
        }
    }

    @Override
    public void onFailure(Throwable e) {
        // 调用失败
    }
});

返回参数

{
  "error": {},
  "code": 0,
  "data": "hello allen"
}

异常请参考异常