меня создать службу проверки для моей регистрационной формы и один из статических методов проверки, если введенный адрес электронной почты можно получить по телефону моего API следующим образом:Angular2 возвращает данные из службы проверки после Http позвонить
static emailAvailable(control){
let injector = ReflectiveInjector.resolveAndCreate([HTTP_PROVIDERS]);
let http = injector.get(Http);
let valid = "E-mail is available";
http.post('https://secretapi.com/email', JSON.stringify({ email: control.value }))
.map((res: Response) => res.json())
.subscribe(function(result){
if(result.success){
valid = result.success; //The console.log on the line below is correct, the one at the bottom of the script never changes.
console.log(valid);
return null; //Doesn't do anything?
}else{
valid = result.error; //The console.log on the line below is correct, the one at the bottom of the script never changes.
console.log(valid);
return { 'invalidEmailAddress': true }; //Doesn't do anything, just like the return above
}
});
console.log(valid); //Output always "E-mail is available"
}
Он должен вернуть «null» в средство проверки формы, когда оно доступно. Последний console.log внизу должен вывести сообщение, которое оно получает при вызове подписки. Этого не происходит, и я не уверен, почему. По какой-то причине все, что происходит внутри вызова подписки, содержится там и никогда не достигает проверки. Что я должен изменить? Я понятия не имею, и уже несколько часов ищу в Интернете.