Angular2/ionic2로 작성된 내 응용 프로그램의 로컬 저장소에서 데이터를 비동기로 검색하는 것을 처리하는 데 어려움을 겪고 있습니다.this.storage.get() 호출에서 비동기식 약속을 처리 할 수있는 체인 연결
는 다음과 내가 가진 코드가 될 때 :
request(args) {
var headers = new Headers();
headers.append('Content-Type', 'application/json');
// Retrieve the token from the local storage, if available
this.storage.get('token').then((value) => {
headers.append('Authorization', 'Token ' + value);
});
args = args || {};
var url = this.API_URL + args.url;
var method = args.method;
var data = args.data || {};
var options = new RequestOptions({headers: headers, withCredentials: this.use_session});
return new Promise((resolve,reject) => {
if (method == 'GET') {
this.http.get(url, options)
.map(res => res.text())
.subscribe(
(data:any) => {
resolve(data);
},
(err:any) => {
data = {};
data['status'] = 0;
data['non_field_errors'] = ["Could not connect to server. Please try again."];
data['error'] = err;
reject();
},
() => {
}
);
}
});
}
요청 함수를 호출하는 코드 다음과 같습니다
authenticationStatus(){
return this.request({
'method': "GET",
'url': "/user/"
})
.then((data:any) => {
console.log('****** authenticationStatus: GET /user/ SUCCESS');
});
}
그리고이 차례로 다음과 같이 호출됩니다
this.djangoAuth.authenticationStatus()
.then((data:any) => {
this.loggedIn = true;
this.enableMenu(true);
this.root = PhotoPage;
},
(err:any)=>{
this.loggedIn = false;
this.enableMenu(false);
this.root = LoginPage;
});
내 머리의 주위 중첩 약속을 포장 어려움이 위의 코드를 수정하는 방법을 작동하지 않을 수 있도록 this.storage.get("token")
호출의 결과 아래 코드에서 사용하기 전에 헤더에 데이터를 추가했습니다. 저는 약속을 어떤 식 으로든 연결해야한다고 생각하지만 정확히 어떻게 작동 할 수는 없습니다.
기본 로컬 스토리지에 액세스
else
부분을 추가 할 수도있다 동기 ... 확실하지 왜 당신 약속에 싸여 있습니다 – charlietfl이것은 네이티브가 아니며 angularjs/ionic입니다 –
둘 다 기본 자바 스크립트를 사용하는 프레임 워크입니다 – charlietfl