0

現時点でAngularではこれがあります:

app.factory("myService", function($http, $q) {
    return {
        doBoth: function(data) {
            return $q.all([$http.post("/search/local", data), $http.post("/search/shape", data)]);
        }
    };
});

そして私はそれをこのように呼びます:

$scope.$on("localSearch", function(event, data) {
    return myService.doBoth(data);
});

しかし、私はそれが非同期的に起こっているとは思いません。どちらも満たされるまでにかなりの時間がかかるため、Angularが両方を同時にリクエストする必要があるため、完全なリクエストはどちらか一方ではありませんが、両方が返されるのに最も早い時間です。

4

1 に答える 1

0

両方のクエリが完了した後にコールバックを起動する場合は、$q.then()メソッドに配置します。

$scope.$on("localSearch", function(event, data) {
  return myService
    .doBoth(data)
    .then(function (response) {
      // both deffered completed
    });
});

ここでサンプルを作成しましたhttp://plnkr.co/edit/7G8oFMSx8cPC98zDhlNq?p=preview

于 2013-03-15T18:31:33.007 に答える