Знатоки, подскажите пожалуйста, как убедиться, что асинхронная инициализация в конструкторе сервиса завершенна при вызове других функций в классе?
Пример кода:
constructor() {
var sock = new SockJS(this._chatUrl);
this.stompClient = Stomp.over(sock);
this.stompClient.connect({}, function () {
});
}
public subscribe(topicName: string, messageReceived) {
this.stompClient.subscribe('/topic/' + topicName, function (message) {
messageReceived(message);
})
}
public sendMessage(msgDestId: string, message) {
this.stompClient.send("/app/" + msgDestId, {}, JSON.stringify(message));
}
Как видите, в конструкторе устанавливается соединение с stomp-сервером. После чего, клиентам (компонентам) этого сервиса предлагается подписаться на интересующие топики. Естественно, что вызов функции subscribe не имеет смысла пока соединение полностью не установленно.