소스 검색

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 년 전
부모
커밋
ac007bb527
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  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
                  * @memberOf _converse.api.disco
                  */
-                'features': {
+                features: {
                     /**
                      * Return a given feature of a disco entity
                      *
@@ -642,7 +642,9 @@ converse.plugins.add('converse-disco', {
                     entity.features.reset();
                     entity.fields.reset();
                     entity.identities.reset();
-                    entity.waitUntilFeaturesDiscovered = utils.getResolveablePromise()
+                    if (!entity.waitUntilFeaturesDiscovered.isPending) {
+                        entity.waitUntilFeaturesDiscovered = utils.getResolveablePromise()
+                    }
                     entity.queryInfo();
                     return entity.waitUntilFeaturesDiscovered;
                 },