Skip to content

Commit e4be139

Browse files
committed
Allows an optional error to Deferred.cancel
1 parent 54f124a commit e4be139

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/system/promise.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ export interface Deferred<T> {
139139
readonly pending: boolean;
140140
readonly promise: Promise<T>;
141141
fulfill: (value: T) => void;
142-
cancel(): void;
142+
cancel(e?: Error): void;
143143
}
144144

145145
export function defer<T>(): Deferred<T> {
@@ -154,9 +154,13 @@ export function defer<T>(): Deferred<T> {
154154
deferred.pending = false;
155155
resolve(value);
156156
};
157-
deferred.cancel = function () {
157+
deferred.cancel = function (e?: Error) {
158158
deferred.pending = false;
159-
reject();
159+
if (e != null) {
160+
reject(e);
161+
} else {
162+
reject();
163+
}
160164
};
161165
});
162166
return deferred;

0 commit comments

Comments
 (0)