вернуть JavaScript результат (js файл) в Angular 7 - PullRequest
1 голос
/ 20 января 2020

Как вернуть JavaScript результат (js файл) в Angular 7 и использовать его. В Javascript все шаги выполняются одновременно, но я хочу, чтобы результат вернулся, а затем запустил Angular. Я использовал следующий код, но это не так:

new Promise(function(resolve, reject) {
            sign(); // this is in JS file
            setTimeout(() => resolve(opSignature), 7000); // opSignature is result of sign()
          }).then(
              result => {
                this.saveChallenge(result); // call angular method
              }
          );

Мне нужно вернуть значение в моем файле js, а затем использовать этот результат в Angular В JavaScript все шаги выполняются последовательно и не разрешать выполнение предыдущих шагов и go до следующего шага. Моя проблема в том, что результат в верхней строке все еще не возвращается к следующей строке, равной Angular, и теперь нужен результат в верхней строке. sign () - это метод в javascript файле и this.saveChallenge (результат); is angular 7

angular:

this._loginService.saveSignature(opSign)
        .pipe(map(response =>
          this.goToProcess(opSign)
        ))
        .subscribe( );

js file:

function sign() {
// my code ...
}

1 Ответ

0 голосов
/ 01 февраля 2020

я решаю эту проблему. я вызываю angular метод в js файле. в js файле:

window.angularComponentReference.zone.run(() => { window.angularComponentReference.loadAngularFunction(); });

в angular:

    constructor(private ngZone: NgZone) {
      }
    ngOnInit() {
        window['angularComponentReference'] = { component: this, zone: this.ngZone, loadAngularFunction: () => this.angularFunctionCalled(), };

 private angularFunctionCalled() {
    ....
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...