private isValidURL(url: string) {
var isValid = false;
this.$http.get(url).then(
(data) => {
console.log('success');
isValid = true;
}
).catch(
(reason) => {
console.log('failure ' + reason);
isValid = false;
}
).then(
() => {
return isValid;
}
)
}
private anotherFunc() {
if (!this.isValidURL(url)) {
alert('Wrong URL');
return false;
}
}
Предупреждение внутри оператора if выполняется до вызова функции . Как я могу гарантировать, что функция будет выполнена в первую очередь?Предупреждение Javascript перед вызовом функции для получения запроса
Возможный дубликат [Как вернуть ответ от асинхронного вызова?] (Http://stackoverflow.com/questions/14220321/how-do-return-the-response-from-an-asynchronous-call) – David
Подсказка: 'isValidURL' * сам * не содержит оператора' return', и поэтому его результат всегда оценивается как 'undefined', что является« falsey ». Поэтому '! This.isValidURL()' будет * always * быть истинным. – David