Я начинаю привыкать к обещанию управляемого кода, но я обнаружил, что очень часто повторяю фрагменты кода.В частности, у меня есть приложение Ionic, в котором я выполняю много вызовов API, и перед запуском вызова я проверяю, есть ли подключение к Интернету и аутентифицирован ли пользователь.Каждая из этих функций структурирована следующим образом:
noteCreate(): Promise<any> {
return new Promise (resolve => {
this.connCheck()
.then(success => {
if (success) {
this.authCheck('Please login first!')
.then(success => {
if (success) {
// API CALL
}
});
}
})
});
}
Я надеюсь, что есть способ, которым я мог бы украсить свои вызовы API или сжать эти две проверки во что-то простое и не столь громоздкое / повторяющееся, но яЯ не уверен, как мне поступить об этом.
Я ищу и connCheck
, и authCheck
, чтобы вернуть true
, чтобы продолжить вызовы API.Я хочу сохранить эти функции отдельно, потому что в некоторых случаях мне нужно только проверять соединение, а в других - только аутентификацию (локально).
connCheck(): Promise<boolean> {
return new Promise(resolve => {
this.http.get(this.myURL() + '/heartbeat/', {responseType: 'text'}).subscribe(
(data) => {
resolve(true);
},
(err) => {
resolve(false);
}
);
})
}
authCheck(message: string): Promise<boolean> {
return this.storage.get('user').then((data) => {
if (data) {
return true;
} else {
return false;
}
});
}