提交 1f76df97 编写于 作者: 雪洛's avatar 雪洛

docs: 更新uni-app-x uniCloud云函数云对象泛型文档

上级 2c355479
...@@ -11,3 +11,46 @@ ...@@ -11,3 +11,46 @@
<!-- UTSUNICLOUDAPIJSON.callFunction.tutorial --> <!-- UTSUNICLOUDAPIJSON.callFunction.tutorial -->
<!-- UTSUNICLOUDAPIJSON.unicloud-call-function.example --> <!-- UTSUNICLOUDAPIJSON.unicloud-call-function.example -->
### 调用云函数时传入泛型
> 4.13版本起支持,仅安卓端会构造对应的泛型的实例,web端和iOS端泛型仅作为类型使用。
用法:`uniCloud.callFunction<泛型类型>({name: 'xxx', data: {}} as UniCloudCallFunctionOptions)`
在不传泛型时callFunction返回的类型为`Promise<UniCloudCallFunctionResult<UTSJSONObject>>`,传入泛型后callFunction返回的类型为`Promise<UniCloudCallFunctionResult<泛型类型>>`
**代码示例**
```ts
// 云函数fn代码
'use strict';
exports.main = async (event, context) => {
return {
errCode: 0,
errMsg: '',
detail: 'call function detail'
};
};
```
```ts
// 客户端代码
type CallFunctionResult = {
errCode : number,
errMsg : string,
detail : string
}
uniCloud.callFunction<CallFunctionResult>(
{
name: 'fn',
data: { a: 1 } as UTSJSONObject,
} as UniCloudCallFunctionOptions
).then(function (res) {
const result = res.result // result的类型为CallFunctionResult
const detail = result.detail // 可直接使用.detail访问
console.log(detail)
}).catch(function (err : any | null) {
console.error(err)
})
```
...@@ -32,4 +32,44 @@ export { // 上面的写法可以自己调整,仅需保证export内包含所 ...@@ -32,4 +32,44 @@ export { // 上面的写法可以自己调整,仅需保证export内包含所
} }
``` ```
<!-- UTSUNICLOUDAPIJSON.unicloud-import-object.example --> <!-- UTSUNICLOUDAPIJSON.unicloud-import-object.example -->
\ No newline at end of file
### 调用云对象时传入泛型
> 4.13版本起支持,仅安卓端会构造对应的泛型的实例,web端和iOS端泛型仅作为类型使用。
用法:`obj.add<泛型类型>()`
在不传泛型时云对象方法返回的类型为`Promise<UTSJSONObject>`,传入泛型后callFunction返回的类型为`Promise<泛型类型>`
**代码示例**
```ts
// 云对象todo代码
'use strict';
module.exports = {
async add(title, content) {
return {
errCode: 0,
errMsg: '',
detail: `Todo added, title: ${title}, content: ${content}`
}
},
}
```
```ts
// 客户端代码
const todo = uniCloud.importObject('todo')
type CallObjectResult = {
errCode : number
errMsg : string
detail : string
}
todo.add<CallObjectResult>('todo title', 'todo content').then((res) => {
const detail = res.detail // res类型为CallObjectResult,可直接通过.detail访问其中detail属性
console.log(detail)
}).catch((err : any | null) => {
console.error(err)
})
```
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册