Browse Source

converse-disco: don't replace a pending promise

I'm not sure how much this is an issue outside of tests, where we might
run into race conditions arising to the fact that we don't always
respond to every IQ stanza
JC Brand 6 years ago
parent
commit
ac007bb527
1 changed files with 4 additions and 2 deletions
  1. 4 2
      src/headless/converse-disco.js

+ 4 - 2
src/headless/converse-disco.js

@@ -566,7 +566,7 @@ converse.plugins.add('converse-disco', {
                  * @namespace _converse.api.disco.features
                  * @namespace _converse.api.disco.features
                  * @memberOf _converse.api.disco
                  * @memberOf _converse.api.disco
                  */
                  */
-                'features': {
+                features: {
                     /**
                     /**
                      * Return a given feature of a disco entity
                      * Return a given feature of a disco entity
                      *
                      *
@@ -642,7 +642,9 @@ converse.plugins.add('converse-disco', {
                     entity.features.reset();
                     entity.features.reset();
                     entity.fields.reset();
                     entity.fields.reset();
                     entity.identities.reset();
                     entity.identities.reset();
-                    entity.waitUntilFeaturesDiscovered = utils.getResolveablePromise()
+                    if (!entity.waitUntilFeaturesDiscovered.isPending) {
+                        entity.waitUntilFeaturesDiscovered = utils.getResolveablePromise()
+                    }
                     entity.queryInfo();
                     entity.queryInfo();
                     return entity.waitUntilFeaturesDiscovered;
                     return entity.waitUntilFeaturesDiscovered;
                 },
                 },