例如调用微信云函数时,可将调用方法封装到一个JS中。
新建一个JS,内容如下
export function callFunction(name, data) { return new Promise((resolve, reject) => { wx.cloud.callFunction({ name: name, data: data, success: function(res) { resolve(res); }, fail: function(err) { reject(err); } }); }) }
使用时先声明,想去掉大括号,可在JS中的export后面添加default,否则必须加大括号,下面是调用方法。
import {callFunction} from '../../unit/unit.js'
async add(){
var data = { userid:user.openid, title: that.title, content: that.content, isdel:0, optime:new Date() }; try{ const res = callFunction('addnote',data); uni.showToast({ title:'添加成功', complete() { that.title=''; that.content=''; } }) }catch(e){ console.error }
}
最外面的方法需要加上async,需要注意的是,这个方法貌似不能写在showtoast的success方法里面,不然会有些奇怪的事情发生,个人感觉是异步套了异步,还是老老实实的在里面写同步方法为好。