Ну, я подумал об обходном пути: если модал открывается, отклоните someFunction
вместо его разрешения.
Затем добавьте свойства dataReturned
и loginModalActive
к службе, которой принадлежит someFunction
.
Добавьте this.loginModalActive = true;
к openModal
и
this.dataReturned = dataReturned;
this.loginModalActive = false;
к содержащемуся в вызове содержавшемуся вызову modal.onDidDismiss()
.
Затем добавьте эту функцию к службе, которой принадлежит someFunction
:
waitForLoginModuleToClose() {
return new Promise(resolve => {
const delay = 100;
interval(delay).subscribe(() => {
if (!this.loginModalActive) {
resolve(this.dataReturned);
}
});
});
}
На странице есть pageFunction()
Вызовите себя, если вызов someService
отклонен.
Это не совсем то, что я искал, но это позволяет сервису отслеживать, должен ли модаль быть открытым, и запускаетинтервал каждые 100 мс, чтобы проверить, открыт он или нет. Как только он определил, что он не открыт, можно попытаться снова выполнить функцию попытки загрузки страницы.