필요할 때 저장소에서 신뢰할 수 있는 데이터를 얻는 방법은 무엇입니까?
1792 단어 angular
저는 오래된 c/java/php/html/js/perl 프로그래머이고 이 각진 부분에 들어가려고 합니다. 첫 번째 앱을 단계별로 만들고 로그인을 위해 비밀번호 복구 서비스를 구현하고 있습니다. 모든 것을 이해하지는 못하지만 이미 작동합니다. 이제 데이터 저장에 문제가 있습니다. 문제는 값을 저장했는데도 한번에 값이 나오지 않는다는 것! 한 구성 요소에서 다른 구성 요소로 세션 값을 "전송"하기 위해 커패시터 저장소를 사용하는 두 개의 구성 요소를 상상해 보십시오.
여기에서 인터넷에서 찾은 예와 유사한 스토리지 서비스를 만들었습니다.
export class StorageService {
constructor() { }
async setString(key: string, value: string) {
await Storage.set({ key, value });
}
async getString(key: string): Promise<{ value: string }> {
return (await Storage.get({ key }));
}
첫 번째 구성 요소는 양식의 제출 버튼을 누를 때 setString()을 호출합니다.
this.data.setString('session', result.session);
그런 다음 프로세스를 완료하기 위해 다른 제출 버튼을 누를 때 세션 값에 대한 액세스를 시도하는 두 번째 양식 구성 요소에 대한 리디렉션을 사용합니다.
this.data.getString('session').then((d: any) => {
if (d.value) {
this.session = d.value;
}
});
그러나 대부분 this.session은 정의되지 않았습니다. 왜요? 이 코드로 이 경우를 포착합니다.
if(this.session === undefined) {
const alert = await this.alertController.create({
header: 'Hint',
message: 'An error occured, please try again',
buttons: ['OK'],
});
loading.dismiss();
await alert.present();
return;
}
제출 버튼을 두 번째로 누르면 세션 값이 정의됩니다! 나는 이것에 대해 헤매고 있지만 이 "await/async/promise"주제를 아직 이해하지 못했다는 것을 인정해야 합니다. 첫 번째 액세스 시도에서 저장된 값을 얻고 싶습니다.
geString() 메서드로 while(this.session === undefined) {} 루핑을 사용해야 합니까?
도움을 주셔서 미리 감사드립니다.
Reference
이 문제에 관하여(필요할 때 저장소에서 신뢰할 수 있는 데이터를 얻는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/thbarth/how-to-get-data-reliable-from-storage-when-i-need-it-1d5e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)