小程序云开发中会有大量的异步调用的语法,没学习es6之前,看到后处于完全懵逼的状态,一个是语法不清楚,另外一个也不知道是干啥的。Promise教程
写的多了,其实也就明白,其实就是异步调用,和传统的js的ajax差不多,要我通俗的理解就是换了一个写法
vue中异步调用的例子
createData() { this.$refs['dataForm'].validate((valid) => { if (valid) { this.temp.id = parseInt(Math.random() * 100) + 1024 // mock a id this.temp.author = 'vue-element-admin' this.temp.status = '待支付' this.temp.no = parseTime(new Date(), '{y}{m}{d}') + (++this.total).toString().padStart(5, '0') this.$cloudbase.database().collection('order').add({ no: this.temp.no, name: this.temp.name, telphone: this.temp.telphone, address: this.temp.address, items: this.products, totalprice: this.temp.totalprice, discountprice: this.temp.discountprice, status: this.temp.status, createdate: new Date() }).then((res) => { this.temp._id = res.id this.list.unshift(this.temp) this.dialogFormVisible = false this.$notify({ title: '提示信息', message: '新增成功', type: 'success', duration: 2000 }) this.fetchData() }).catch((e) => {}) } }) }
小程序中异步调用的例子
onLoad: function (options) { console.log(options.name+" "+options.type) console.log(teacherCollection) teacherCollection.where({ course:options.name, }).get().then(res => { console.log(res.data) this.setData({ teacherlist: res.data, type:options.type }) }) }
云函数或者官方的API基本都是异步调用的,调用成功我们一般都需要更新状态以给用户进行提示,所以在方法调用完毕后一般跟一个.then()这个就是回调,当然回调里你还得使用箭头函数以便获得到页面的状态变量来更新页面的状态。