私は、JavaScript (特に AngularJS) の約束について頭を悩ませようとしています。
私はサービスに関数を持っています。それを呼び出しましょうfooService
。これは、データをロードしたかどうかをチェックします。もしそうなら、私はそれを返したいだけです.そうでない場合は、データをロードしてpromiseを返す必要があります:
this.update = function(data_loaded) {
if (data_loaded) return; // We've loaded the data, no need to update
var promise = Restangular.all('someBase').customGet('foo/bar').then(function(data) {
// Do something with the data here
}
return promise;
}
次のようなupdate
関数を呼び出す別の関数があります。fooService
fooService.update(data_loaded).then(function() {
// Do something here when update is finished
})
ここでの問題は、関数にデータをロードする必要がない場合update
、プロミスが返されないため.then()
、他の関数で呼び出されないことです。ここでのアプローチはどうあるべきですか - 基本的にupdate()
、Restangular 呼び出しからデータを取得する必要がない場合、解決されたプロミスを関数からすぐに返したいですか?