/** * 导出云对象实例 * @param {String} name 云对象路径,如:client/pub * @example const pubObject = uni.vk.importObject('client/pub'); // 导入云对象 * 注意,只能在声明 async 的函数内使用,如: async test(){ let res = await pubObject.getList({ title: "请求中", data: { a: 1, b: "2" } }); } */ var importObject = function(name) { const newObj = new Proxy(importObject, { get: function(target, key, receiver) { /** * 导出云对象内的某个方法 * @param {Object} data 请求参数,如 { a:1, b:"2" } 云对象内可通过 let { a, b } = data; 获取参数 * @param {String} title 遮罩层提示语,为空或不传则代表不显示遮罩层。 * @param {Boolean} needAlert 为true代表请求错误时,会有弹窗提示。默认为true * @param {Object} loading 与title二选一,格式为 { name: "loading", that: that } name是变量名,that是数据源,当发起请求时,自动that[name] = true; 请求结束后,自动that[name] = false; */ return async function(options) { return uni.vk.callFunction({ ...options, url: `${name}.${key}` }); } }, // set: function(target, key, value, receiver) { // console.log("set"); // console.log("target",target); // console.log("key",key); // console.log("value",value); // console.log("receiver", receiver); // }, }); return newObj; }; export default importObject;