diff options
Diffstat (limited to 'modules/core/overrides/Gio.js')
-rw-r--r-- | modules/core/overrides/Gio.js | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/modules/core/overrides/Gio.js b/modules/core/overrides/Gio.js index be2e5247..6cc29b17 100644 --- a/modules/core/overrides/Gio.js +++ b/modules/core/overrides/Gio.js @@ -185,8 +185,22 @@ function _addDBusConvenience() { let i, methods = info.methods; for (i = 0; i < methods.length; i++) { var method = methods[i]; - this[`${method.name}Remote`] = _makeProxyMethod(methods[i], false); + let remoteMethod = _makeProxyMethod(methods[i], false); + this[`${method.name}Remote`] = remoteMethod; this[`${method.name}Sync`] = _makeProxyMethod(methods[i], true); + this[`${method.name}Async`] = function (...args) { + return new Promise((resolve, reject) => { + args.push((result, error, fdList) => { + if (error) + reject(error); + else if (fdList) + resolve([result, fdList]); + else + resolve(result); + }); + remoteMethod.call(this, ...args); + }); + }; } let properties = info.properties; |