Зритель setThemingColor Promise - PullRequest
       4

Зритель setThemingColor Promise

0 голосов
/ 28 января 2020

Есть ли возможность сделать setThemingColor asyn c и вернуть обещание? Так как он обрабатывает различные массивы объектов, я должен знать, когда раскраска закончится

await asyncForEach(inputsSameLot, async (input) => {
        // console.log(input);
        var name = '';
        if (input.objectPath.indexOf('/')) {
          name = input.objectPath.split('/')[input.objectPath.split('/').length - 1];
        }
        else {
          name = input.objectPath;
        }
        // // Rot
        // var redColor = new THREE.Vector4(1, 0, 0, 1);
        let dbId = this.viewerComponent.viewer.search(name, (idArray) => {
              this.viewerComponent.viewer.setThemingColor(idArray[0], color);
          // new Promise(resolve);
          // Wenn iterator gleich die Länge ist dass alle Objekte wieder zeigen
          // if (inputsSameLot.length === iterator) {
          //   console.log(inputsSameLot.length + ' ' + iterator);

          // }
          // if (index === 5 && inputsSameLot.length === iterator) {
          //   $('.spinner').hide();
          //   this.viewerComponent.viewer.showAll();
          // }
        }, (err) => {
          this.messageService.add({ key: 'warning', severity: 'error', summary: 'Error', detail: 'Something with COLORING went wrong: ' + err });
        }, ['name']);
      });

Спасибо

1 Ответ

1 голос
/ 28 января 2020

Внутри метод setThemingColor не выполняет много работы - он просто перебирает объекты с заданным значением dbid (если установлен флаг recursive), он обновляет одноцветное значение во внутреннем массиве и помечает геометрию dbid как «грязную». После возврата синхронного вызова этого метода вы знаете, что все объекты были окрашены, поэтому в действительности нет необходимости ожидать асинхронного сигнала о завершении операции.

...