hcsq-admin-master/src/api/utils.ts

43 lines
1.0 KiB
TypeScript
Raw Normal View History

2025-09-06 10:15:49 +08:00
export default {
create({
request,
getValue,
key=''
}){
let object:Record<string, any> = {
request,
getValue,
fail:false,
loading:false,
_callback:[],
_triggerAllCallback(fail){
if (this._callback) {
this._callback.forEach((item)=>{
return fail ? item.reject(): this._getTarget(item.data,item.resolve,item.reject);
});
this._callback = [];
}
},
_getTarget(data,resolve, reject){
return this.getValue(data).then(resolve).catch(reject);
},
};
const newGetValue = getValue.bind(object);
newGetValue.clear = function () {
object._data = undefined;
object.loading = false;
object._callback = [];
}
return {
[key]: newGetValue,
['_'+key]: request.bind(object)
}
}
}