私はこのようなコードがある -以下のコードの実行後にsubscribeが呼び出されますか?
ngOnInit(){
console.log("ngOnInit before service call");
this._blockCreditCardService.getAccountList().
subscribe(
(data)=> {
this.accountList=data;
console.log("account-list-"+this.accountList[0])
console.log(this.accountList.length);
if(this.accountList.length>0){
this.nonEmptyAccountList=true;
}
this.options=[];
for (let i = 0; i < this.accountList.length; i++) {
this.options.push({ value: this.accountList[i], label:this.accountList[i].accountNumber});
}
},
error=> console.log("Error"),
()=> console.info("Completed")
);
this.selectedCardFromVerify=[];
console.log("ngOnInit this.cardDetails-"+this.cardDetails);
(this.cardDetails) ? this.reSelected(this.cardDetails) : this.isAccountSelected=false;
}
をし、その結果をブラウザのコンソールに
ngOnInit before service call
capture.component.ts?dfa9:125 ngOnInit this.cardDetails-undefined
core.es5.js?0445:3231 Angular is running in the development mode. Call enableProdMode() to enable the production mode.
capture.component.ts?dfa9:111 account-list-[object Object]
です。何が私はここで行方不明です。なぜこれが起こっているのですか?私は2番目の角度に新しいですし、誰かがここにいくつかの光を当てるようにしたいと思います。ありがとう。
非同期機能の概念を理解していますか? –
あなたのサービスはAJAXリクエストを行います。 AJAXのAは** Asynchronous **を意味します。コールバックを購読して渡すことの全ポイントは、応答が利用可能なときに後で呼び出されることです。ちょうどあなたの朝食を食べるときに、トーストを焼くと、新聞を読んでから、トーストが "あなたのトーストが準備ができました"と言って欲しいときにトーストを食べ始めるだけです。サービスコールが同期であった場合、オブザーバブルを返さない。結果を直接返します。 –