私はちょうどクリーンコードの読み込みを完了し、私の関数のそれぞれがその本で行うように1つのことを行うように、角2のコードをリファクタリングしようとしていますが、私はそれが一般的な約束についての理解の欠如になると思う。 これは私の現在の作業バージョンです。私はここで角2プロミスとリファクタリング
var userInfo = this.getUserInfoFromStorage();
prepopulateUserInfo(userInfo);
にこの単一のメソッドをオンにしようとしてきた
prepopulateUserInfoFromStorage() {
var emailFromStorage;
var passwordFromStorage;
this._storage.ready().then(() => {
this._storage.get('email').then((emailValue) => {
emailFromStorage = emailValue;
}).then(() => {
this._storage.get('password').then((passwordValue) => {
passwordFromStorage = passwordValue;
})
}).then(() => {
if (emailFromStorage != null && passwordFromStorage != null) {
(<FormControl>this.loginForm.controls['email']).setValue(emailFromStorage);
(<FormControl>this.loginForm.controls['password']).setValue(passwordFromStorage);
}
});
}).catch(function (error) {
});
}
は失敗しているもので、私の最新の試みです。私は問題が彼らがいつ呼び出されているのか、彼らが約束を終えているのかと関係していると信じています。上記の私の作業コードは、それぞれの約束が終わるまで起こっているわけではないので、私は理解していますが、分割しようとすると適切な機能を失うことになります。もし誰かが私をここで助けて、概念的に私が逃していることをうまく説明できたら、私はそれをとても感謝します。
getUserInfoFromStorage() {
var emailFromStorage;
var passwordFromStorage;
this._storage.get('email').then((emailValue) => {
emailFromStorage= emailValue;
}).then(()=>{
this._storage.get('password')
.then((passwordValue)=> {
passwordFromStorage = passwordValue;
})
})
return {email: emailFromStorage, password: passwordFromStorage};
}
prepopulateUserInfo(userInfo: any) {
if (userInfo.email != null && userInfo.password != null) {
(<FormControl>this.loginForm.controls['email'])
.setValue(userInfo.email);
(this.loginForm.controls [ 'パスワード']) .setValue(userInfo.password)。 } }
以下のコードは、「私はこの単一のメソッドを "に変えようとしています。"というコードは、あなたのコード例の一部ではありません。また、コードを適切にフォーマットすると多くの助けになります。 –