diff options
-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; |