Add api wait function
This commit is contained in:
parent
9543fa8409
commit
fc6fee74b0
@ -467,6 +467,44 @@ class API<I extends IAnyData, O extends IAnyData> extends Emitter<IAPIEvent<I, O
|
|||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 等待结果
|
||||||
|
*/
|
||||||
|
public wait(): Promise<IRespondData<O>>;
|
||||||
|
public wait(callBack?: ICallBack<O>): this;
|
||||||
|
public wait(callBack?: ICallBack<O>): Promise<IRespondData<O>> | this {
|
||||||
|
|
||||||
|
// 存在 callback 使用传统回调
|
||||||
|
if (callBack) {
|
||||||
|
callBack.success && this.on("success", callBack.success);
|
||||||
|
callBack.fail && this.on("fail", callBack.fail);
|
||||||
|
callBack.complete && this.on("complete", callBack.complete);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 不存在 callback 使用 Promise 对象
|
||||||
|
else {
|
||||||
|
return new Promise((r) => {
|
||||||
|
this.on("success", r);
|
||||||
|
this.on("fail", r);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自动响应数据
|
||||||
|
*/
|
||||||
|
type IRespondData<O extends IAnyData> = Partial<IAPIEvent<IAnyData, O>["success"]> & IAPIEvent<IAnyData, O>["fail"];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 回调对象
|
||||||
|
*/
|
||||||
|
interface ICallBack<O extends IAnyData> {
|
||||||
|
success?: (data: IAPIEvent<{}, O>["success"]) => any;
|
||||||
|
fail?: (data: IAPIEvent<{}, O>["fail"]) => any;
|
||||||
|
complete?: (data: IAPIEvent<{}, O>["complete"]) => any;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -515,4 +553,4 @@ enum HTTPMethod {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default API;
|
export default API;
|
||||||
export { API, IParamSetting, IAppAPIParam, HTTPMethod, RequestPolicy }
|
export { API, IParamSetting, IAppAPIParam, ICallBack, HTTPMethod, RequestPolicy }
|
@ -53,7 +53,11 @@ implements Partial<ILifetime> {
|
|||||||
info: {
|
info: {
|
||||||
data: "abc"
|
data: "abc"
|
||||||
}
|
}
|
||||||
}).request();
|
}).request().wait({
|
||||||
|
success: (d) => console.log(d)
|
||||||
|
}).wait({
|
||||||
|
success: (d) => console.log(d)
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user