Skip to content

Commit ff1957e

Browse files
committed
util/promise: propagate property read errors in wait_property()
1 parent 5088ccb commit ff1957e

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

ddterm/util/promise.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,16 @@ export async function wait_property(object, property, predicate, cancellable = n
3838
let handler, cancel_handler;
3939

4040
try {
41-
await new Promise(resolve => {
41+
await new Promise((resolve, reject) => {
4242
handler = object.connect(`notify::${property}`, () => {
43-
value = object[property];
43+
try {
44+
value = object[property];
4445

45-
if (predicate(value))
46-
resolve();
46+
if (predicate(value))
47+
resolve();
48+
} catch (error) {
49+
reject(error);
50+
}
4751
});
4852

4953
cancel_handler = cancellable?.connect(() => {
@@ -52,9 +56,9 @@ export async function wait_property(object, property, predicate, cancellable = n
5256
});
5357
} finally {
5458
object.disconnect(handler);
59+
cancellable?.disconnect(cancel_handler);
5560
}
5661

57-
cancellable?.disconnect(cancel_handler);
5862
cancellable?.set_error_if_cancelled();
5963

6064
return value;

0 commit comments

Comments
 (0)