Bugfix. Make sure _devices_promise is a Promise

This commit is contained in:
JC Brand 2018-11-12 11:46:18 +01:00
parent 1c38863bfd
commit affafc746c
2 changed files with 32 additions and 24 deletions

29
dist/converse.js vendored
View File

@ -66192,23 +66192,28 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins
fetchDevices() {
if (_.isUndefined(this._devices_promise)) {
const options = {
'success': c => this.onCachedDevicesFetched(c),
'error': e => _converse.log(e, Strophe.LogLevel.ERROR)
};
this._devices_promise = this.devices.fetch(options);
this._devices_promise = new Promise(resolve => {
this.devices.fetch({
'success': async collection => {
if (collection.length === 0) {
const ids = await this.fetchDevicesFromServer();
await this.publishCurrentDevice(ids);
}
resolve();
},
'error': e => {
_converse.log(e, Strophe.LogLevel.ERROR);
resolve();
}
});
});
}
return this._devices_promise;
},
async onCachedDevicesFetched(collection) {
if (collection.length === 0) {
const ids = await this.fetchDevicesFromServer();
this.publishCurrentDevice(ids);
}
},
async publishCurrentDevice(device_ids) {
if (this.get('jid') !== _converse.bare_jid) {
// We only publish for ourselves.

View File

@ -840,22 +840,25 @@ converse.plugins.add('converse-omemo', {
fetchDevices () {
if (_.isUndefined(this._devices_promise)) {
const options = {
'success': c => this.onCachedDevicesFetched(c),
'error': e => _converse.log(e, Strophe.LogLevel.ERROR)
}
this._devices_promise = this.devices.fetch(options);
this._devices_promise = new Promise(resolve => {
this.devices.fetch({
'success': async collection => {
if (collection.length === 0) {
const ids = await this.fetchDevicesFromServer()
await this.publishCurrentDevice(ids);
}
resolve();
},
'error': e => {
_converse.log(e, Strophe.LogLevel.ERROR);
resolve();
}
});
});
}
return this._devices_promise;
},
async onCachedDevicesFetched (collection) {
if (collection.length === 0) {
const ids = await this.fetchDevicesFromServer()
this.publishCurrentDevice(ids);
}
},
async publishCurrentDevice (device_ids) {
if (this.get('jid') !== _converse.bare_jid) {
// We only publish for ourselves.