diff options
author | Iván Ávalos <avalos@disroot.org> | 2024-05-24 12:11:59 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2024-05-27 13:39:06 -0600 |
commit | a976b03cd1917d576d084726529427e709d5fe3f (patch) | |
tree | 0978ed3d3f90dae6a9717e43c7972762c49456ff /packages | |
parent | 883788565a968cbbaab04678c9d2ce92b7bdc432 (diff) | |
download | wallet-core-a976b03cd1917d576d084726529427e709d5fe3f.tar.xz |
taler-util: cancel http requests via os.fetchHttp
Diffstat (limited to 'packages')
-rw-r--r-- | packages/taler-util/src/http-impl.qtart.ts | 7 | ||||
-rw-r--r-- | packages/taler-util/src/qtart.ts | 6 |
2 files changed, 11 insertions, 2 deletions
diff --git a/packages/taler-util/src/http-impl.qtart.ts b/packages/taler-util/src/http-impl.qtart.ts index b4e4ebbe7..65e422168 100644 --- a/packages/taler-util/src/http-impl.qtart.ts +++ b/packages/taler-util/src/http-impl.qtart.ts @@ -118,7 +118,11 @@ export class HttpLibImpl implements HttpRequestLibrary { // Just like WHATWG fetch(), the qjs http client doesn't // really support cancellation, so cancellation here just // means that the result is ignored! - const fetchProm = qjsOs.fetchHttp(url, { + const { + requestId, + promise: fetchProm, + cancelFn + } = qjsOs.fetchHttp(url, { method, data, headers: headersList, @@ -135,6 +139,7 @@ export class HttpLibImpl implements HttpRequestLibrary { if (opt?.cancellationToken) { cancelCancelledHandler = opt.cancellationToken.onCancelled(() => { + cancelFn(requestId); cancelPromCap.reject(new RequestCancelledError()); }); } diff --git a/packages/taler-util/src/qtart.ts b/packages/taler-util/src/qtart.ts index e298a157c..373daeae7 100644 --- a/packages/taler-util/src/qtart.ts +++ b/packages/taler-util/src/qtart.ts @@ -17,7 +17,11 @@ export interface QjsHttpOptions { } export interface QjsOsLib { - fetchHttp(url: string, options?: QjsHttpOptions): Promise<QjsHttpResp>; + fetchHttp(url: string, options?: QjsHttpOptions): { + requestId: number, + promise: Promise<QjsHttpResp>, + cancelFn: (reqId: number) => number, + }; postMessageToHost(s: string): void; setMessageFromHostHandler(h: (s: string) => void): void; rename(oldPath: string, newPath: string): number; |