unicloud-import-object.uvue 3.3 KB
Newer Older
1 2 3
<template>
  <!-- #ifdef APP -->
  <scroll-view style="flex:1">
雪洛's avatar
雪洛 已提交
4
  <!-- #endif -->
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
    <view>
      <page-head :title="title"></page-head>
      <view class="uni-padding-wrap uni-common-mt">
        <view class="uni-btn-v uni-common-mt">
          <button type="primary" @tap="addTodo">添加Todo</button>
        </view>
        <view class="uni-btn-v uni-common-mt">
          <button type="primary" @tap="randomFail">随机触发失败重试</button>
        </view>
        <view class="uni-btn-v uni-common-mt">
          <button type="primary" @tap="fail">云对象失败调用</button>
        </view>
        <view class="uni-btn-v uni-common-mt">
          <button type="primary" @tap="success">云对象成功调用</button>
        </view>
      </view>
    </view>
雪洛's avatar
雪洛 已提交
22
  <!-- #ifdef APP -->
23 24 25 26 27 28 29 30
  </scroll-view>
  <!-- #endif -->
</template>

<script>
  export default {
    data() {
      return {
雪洛's avatar
雪洛 已提交
31 32 33 34 35 36 37
        title: '请求云对象',
        todoTitle: '学习编程',
        todoContent: '熟悉uts语法',
        returnTodoTitle: '',
        returnTodoContent: '',
        failErrCode: '',
        successErrCode: -1
38 39 40 41 42
      }
    },
    methods: {
      addTodo() {
        const todo = uniCloud.importObject('todo')
雪洛's avatar
雪洛 已提交
43 44 45 46 47
        const title = this.todoTitle
        const content = this.todoContent
        todo.add(title, content).then<void>((res : UTSJSONObject) : void => {
          this.returnTodoTitle = res['title'] as string
          this.returnTodoContent = res['content'] as string
48
          uni.showModal({
雪洛's avatar
雪洛 已提交
49
            title: '提示',
50 51 52 53 54 55 56 57 58 59 60 61 62 63
            content: res['showMessage'] as string,
            showCancel: false
          })
        }).catch<void>((err : any | null) : void => {
          const error = err as UniCloudError
          console.error(error)
        })
      },
      randomFail() {
        const todoObj = uniCloud.importObject('todo', {
          errorOptions: {
            retry: true
          }
        })
雪洛's avatar
雪洛 已提交
64
        todoObj.randomFail().then<void>((res : UTSJSONObject) : void => {
65
          uni.showModal({
雪洛's avatar
雪洛 已提交
66
            title: '提示',
67 68 69 70 71 72 73 74 75 76
            content: res['showMessage'] as string,
            showCancel: false
          })
        }).catch<void>((err : any | null) : void => {
          const error = err as UniCloudError
          console.error(error)
        })
      },
      fail() {
        const todo = uniCloud.importObject('todo')
雪洛's avatar
雪洛 已提交
77
        todo.fail().then<void>((res : UTSJSONObject) : void => {
78
          uni.showModal({
雪洛's avatar
雪洛 已提交
79
            title: '提示',
80 81 82 83 84 85
            content: 'todo.fail应调用失败,此处错误的触发了成功回调',
            showCancel: false
          })
          console.log('todo.fail: ', res);
        }).catch<void>((err : any | null) : void => {
          const error = err as UniCloudError
雪洛's avatar
雪洛 已提交
86
          this.failErrCode = error.errCode as string
87 88 89 90 91
          console.error(error)
        })
      },
      success() {
        const todo = uniCloud.importObject('todo')
雪洛's avatar
雪洛 已提交
92 93
        todo.success().then<void>((res : UTSJSONObject) : void => {
          this.successErrCode = res['errCode'] as number
94
          uni.showModal({
雪洛's avatar
雪洛 已提交
95
            title: '提示',
96 97 98 99 100 101 102 103 104 105 106 107 108 109
            content: res['showMessage'] as string,
            showCancel: false
          })
        }).catch<void>((err : any | null) : void => {
          const error = err as UniCloudError
          console.error(error)
        })
      }
    }
  }
</script>

<style>

雪洛's avatar
雪洛 已提交
110
</style>