Ожидание с обещанием события - PullRequest
0 голосов
/ 14 января 2020

Я знаю, что название странное, но я постараюсь объяснить мою проблему. У меня есть два app.js Я должен подключиться. Один ожидаемый вызов, который возвращает promise. Второе приложение вызывает пользовательское событие. Данные возвращаются в другое пользовательское событие. Одной из моих идей было как-то создать promise при отправке события и разрешить его на слушателе. К сожалению, я не знаю как, или если это так, если это вообще возможно. Все мои другие идеи - ужасные хаки.

export class ClassA {   
   callback: (string)=>Promise<string>;

   constructor(callback: (string)=>Promise<string>) {        
       this.callback= callback;        
   }

   method(data: string,  appCallback: (token) => void) {
       this.callback(data).then(() => {
           appCallback(token);
       }
   }
}

второе приложение

private callbackToPass(data: string) : Promise<string> {

    window.addEventListener("listenerForResponse", 
    this.listenerForRepsonseHandler.bind(this));
    window.postMessage(`{messageName:"resourceICall", data: {dataProResource: ${data}}`, '*');        

    this.promise = new Promise(*****);
    return this.promise;

    //return of promise, if this can work i can store reference, resolve later
}


private listenerForRepsonseHandler(event){
    window.removeEventListener("event", 
    this.refreshTokenResponseHandler.bind(this));

    // here i need somehow resolve the promise and past data from event
}

...