この投稿は既に解決済みのものです。文脈で取得するには、それを見てください:Nesting promises with $resources in AngularJS 1.0.7
このアプローチを念頭に置いて、私は関数を並行して呼び出したいと思います。両方が完了したら、結果とともにsearchBoats関数を実行してください。私は約束を入れ子にすることができると思うが、$ q.allと並行してやることもできると思う。残念ながら、この約束の話題は私にとっては紛らわしく、私はそれをやる方法を知らない。
前のポストを例に取ると、私のような何かをしたいと思います:以前の問題のよう
var parseURL = function() {
var deferred = $q.defer();
var promise = deferred.promise;
promise.then(function success(result) {
console.log(result);
searchBoats(result);
});
// Instead of resolve when parseBoatType promise is returned, I would like to
// wait for two promises
parseBoatType().then(deferred.resolve);
parseDestination().then(deferred.resolve);
// of course, with this code deferred will be resolved when first promise
// comes. Is it possible to use $q.all here?
};
parseURL();
私はあなたに最初の質問で '$ q.all()'を使う方法を示しました。あなたは待つ必要のある関数でPromiseを返す必要があり、待つべき関数呼び出しによって返される約束の配列を '$ q.all()'に渡す必要があります。 – zero298