현재 각도 js 2에서 로그인 인증과 관련하여 문제가 있습니다. 다음 코드에서는 비동기 문제와 마주하고 있습니다.각도 2 HTTP 서비스 동기화
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { UserData } from './UserData';
import 'rxjs/add/operator/map'
import 'rxjs/add/operator/toPromise'
@Injectable()
export class LoginserviceService {
userData = new UserData('','');
constructor(private http:Http) { }
callService(username:string,passwrod:string):boolean {
var flag : boolean;
(this.http.get('http://localhost:4200/data.json').
map(response => response.json())).subscribe(
data => this.userData = data ,
error => alert(),
() => {
flag = this.loginAuthentication(username,passwrod);
}
);
return flag;
}
loginAuthentication(username:string,passwrod:string):boolean{
if(username==this.userData.username && passwrod==this.userData.password){
return true;
}else{
return false;
}
}
currect 사용자 이름과 암호를 전달한 후이 코드를 실행할 때 여전히 false가 반환됩니다.
return flag
는
flag = this.loginAuthentication(username,passwrod);
전에 실행되고 마침내는 거짓으로 결과를 얻고있다. 그것이 동기 /입니다 -
내가 동기화 방법을 사용하거나 아래
각 2에 약속 할 수 있다면 어떤 솔루션이 있습니까 내가 바로 당신의 질문에 거 같아요 구성 요소 코드
import { Component, OnInit } from '@angular/core';
import { LoginserviceService } from '../loginservice.service';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
model:any={};
constructor(private service : LoginserviceService) {
}
ngOnInit() {
}
save() {
var flag = this.service.callService(this.model.userName,this.model.passWord);
if(flag==true)
{
console.log("login Successfully done-----------------------------")
this.model.success = "Login Successfully done";
}
}
}
라고 .. 서비스 파일입니까? 구성 요소 코드를 추가 할 수 있습니까? – Meir
나는 코드를 업데이트했다. 제발 .. 통과 해. 고마워. – stackinfostack
@stackinfostack는'loginAuthentication' 메소드를 디버그하고 거기에 오는 데이터 값을 볼 수 있나. – Pradeep