私はデータベースからいくつかのデータを取得するAngularJS関数を持っています。データがデータベースにどのように取り込まれているかに基づいて、私はすぐに探しているデータを取得しません(元の呼び出しの2〜2回以内にデータを取得します)。私がしたいことは、データベースから戻ってきた結果をチェックすることです。特定のタイプがまだない場合は、もう一度データベースからデータを取得する「別の約束をプッシュ」することです。これまでのところ私の機能は次のとおりです。結果に基づいて角度の約束を繰り返しますか?
function getResponses(ids,user) {
var deferred = $q.defer();
var promises = [];
var idsString = "";
angular.forEach(ids, function (id) {
idsString += "," + id;
});
idsString = idsString.substring(1);
//Get Response calls retrieves the data from the database
promises.push(getResponse(idsString, user));
$q.all(promises).then(function(results) {
deferred.resolve(results);
});
return deferred.promise;
}
ここまでのところ私の最大の疑問は「チェック結果」の部分です。私はそれが$ q.allブロックに入ると思っていますが、最初にデータベースから結果を解決する必要がありますか、データベースから結果を確認して、必要なタイプがすべて含まれていれば解決しますそれで?それが解決されない場合は、希望の結果が戻ってくるまで$ intervalでgetResponse約束を押し続けてください。
私は何を求めていますか?
おかげ
を、基本的には、特定の型の値のデータベースをポーリングしたいですか?そうであれば、型パラメータをとり、その特定の値を解決する関数を作成する方が論理的です。そうすれば、約束の配列を作り、それらをすべて待つことができ、すべてが解決したら価値があります。 –