2016-11-17 9 views
1

私はグローバル変数への約束から返された値を格納するための要件を持って、私はway-ホールドフロー制御は、すべてのタスクを完全になるまで:Angular2

this.getData().then(data => { 
    this.gloabalData = data;  
}); 
// Doing Operation with globalData 

以下にしようとしています。しかし、問題は、更新前のことですglobalDataの値にデータが含まれている場合、globalDataのデフォルト値を使用しています。これは、getData操作を処理する前に、制御が終了し、globalDataの以前の値を使用することを意味します。それで、すべてのタスクが完了する前に、getData関数内でコントロールを保持する方法はありますか?

答えて

1

これはまったく不可能です。

// Doing Operation with globalData 

に達すると

はまだ

data => { 
this.gloabalData = data; 
} 

getData()は結果で終了したときに呼び出されるあなたがthen()に渡す機能である利用可能なdataはありません。

// Doing Operation with globalData 

getData()完了する前に(サーバ・コールの場合)loooooong実行されます。

答えを

this.getData().then(data => { 
    this.gloabalData = data;  
    // Doing Operation with globalData 
}); 

または

this.getData().then(data => { 
    this.gloabalData = data;  
}).then(data => { 
// Doing Operation with globalData 
}); 
+0

のthnxを行うだけで、私が知っている、私はそのように行うことができますが、私はグローバルデータの外部にアクセスするための要件をしました。 – deen

+0

'this.getData()'の前にリターンを追加し、 '.then(data => ...)'部分をそこに追加するだけです。 –

+0

返された値をglobalData変数に格納できますか? – deen

関連する問題