Ожидание AsyncSubject с использованием toPromise () - PullRequest
0 голосов
/ 07 марта 2019

Мой класс использует асинхронную конструкцию, и поскольку асинхронные операторы не поддерживаются, я пытаюсь использовать шаблон, чтобы иметь возможность ожидать конструирование таких объектов:

export class BaseStationLayer extends BaseLayer {
    // @ts-ignore
    public Ready!: AsyncSubject<BaseStationLayer> = new AsyncSubject<BaseStationLayer>();

    constructor() {
        this.create().then(res => {
                this.Ready!.next(this);
                this.Ready!.complete();
            }).catch(err => { this.Ready!.next(null); this.Ready!.complete(); });
    }

    async create() {
        try {
            await this.createLayer(...);
            await this.pingService();
        } catch (ex) {
            throw ex;
        }
    }
}

Теперь я могу использовать следующее для создания объектов:

const layer = new BaseStationLayer(); 
layer.Ready!.subscribe(ev => {});

однако я бы хотел использовать синтаксис await layer.Ready!. Безопасно ли использовать layer.Ready!.toPromise() для преобразования AsyncSubject (или, альтернативно, ReplaySubject), или игнорируется весь AsyncSubject-Characteristic?

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