mirror of
https://github.com/Gongxh0901/kunpolibrary
synced 2025-12-05 20:29:10 +00:00
仓库中添加内置的demo
This commit is contained in:
65
demo/assets/script/Net/NetTaskBase.ts
Normal file
65
demo/assets/script/Net/NetTaskBase.ts
Normal file
@@ -0,0 +1,65 @@
|
||||
/**
|
||||
* @Author: Gongxh
|
||||
* @Date: 2024-05-20
|
||||
* @Description: 网络基类
|
||||
*/
|
||||
|
||||
import { HttpTask, IHttpResponse } from "kunpocc-net";
|
||||
import { INetResponse } from "./header";
|
||||
|
||||
export abstract class NetTaskBase extends HttpTask {
|
||||
protected url: string = '';
|
||||
private _succeed: (data: any) => void;
|
||||
private _httpError: (data: any) => void;
|
||||
private _taskError: (data: any) => void;
|
||||
|
||||
/**
|
||||
* 设置回调
|
||||
* @param {object} res 回调函数
|
||||
* @param {function} res.succeed 任务成功回调
|
||||
* @param {function} res.taskError 任务错误回调 (一般是服务端返回错误码)
|
||||
* @param {function} res.httpError http错误回调 (一般是网络错误)
|
||||
*/
|
||||
public setTaskCallback(res: { succeed: (response: any) => void, taskError?: (response: any) => void, httpError?: (response: any) => void }) {
|
||||
this._succeed = res?.succeed;
|
||||
this._httpError = res?.httpError;
|
||||
this._taskError = res?.taskError;
|
||||
}
|
||||
|
||||
public onComplete(response: IHttpResponse): void {
|
||||
try {
|
||||
let data = response.data as INetResponse;
|
||||
if (data.responseStatus == 0) {
|
||||
console.log(`http response\n name:${this.name}\n url=${this.url}\n data=${JSON.stringify(data)}`);
|
||||
this.onTaskComplete(data);
|
||||
this._succeed?.(data);
|
||||
} else {
|
||||
throw new Error("任务错误");
|
||||
}
|
||||
} catch (error) {
|
||||
let data = response.data as INetResponse;
|
||||
console.log(`http response task error\n name:${this.name}\n url:${this.url}\n responseStatus:${data.responseStatus}\n data:${JSON.stringify(data)}`);
|
||||
this.onTaskError(data.responseStatus, response.data);
|
||||
this._taskError?.(response.data);
|
||||
}
|
||||
}
|
||||
|
||||
public onError(response: IHttpResponse): void {
|
||||
let message = response.message;
|
||||
let statusCode = response.statusCode;
|
||||
console.log(`http response error\n name:${this.name}\n url:${this.url}\n message:${message}\n statusCode:${statusCode}`);
|
||||
this.onHttpError(message);
|
||||
this._httpError?.(response.data);
|
||||
}
|
||||
|
||||
/** 任务完成 子类必须实现 */
|
||||
protected abstract onTaskComplete(data: any): void;
|
||||
/** 任务错误 子类实现 */
|
||||
protected onTaskError(errcode: number, data: any): void {
|
||||
|
||||
};
|
||||
/** http错误 子类实现 */
|
||||
protected onHttpError(message: string): void {
|
||||
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user