0

$http ではなく xhr を使用するサードパーティのライブラリを使用する場合、サービスで promise を使用する正しい方法は何ですか?

        getSomething: function(user, repo) {
            var deferred = $q.defer();
        client.doSomething().promise().then(function(result) {
                $rootScope.$apply(function() {
                    deferred.resolve(result);
                });
            }, function(err) {  
                $rootScope.$apply(function() {
                    deferred.reject(err);
                });
            });
            return deferred.promise;
        }

$rootScope をそのように使用するのは見苦しく、Angular らしくないように見えますが、スコープをパラメーターとして渡す場合も同様です。これを行うより良い方法はありますか?

4

1 に答える 1

0

これは$q.when()の完璧な使い方のようです:

値または (サード パーティの) then-able promise であるオブジェクトを $q promise にラップします。これは、Promise であるかどうかに関係なくオブジェクトを処理している場合、または Promise が信頼できないソースからのものである場合に役立ちます。

$q.when()promise を返す$qため、コードを次のように簡略化できます。

getSomething: function(user, repo) {
    return $q.when(client.doSomething().promise());
}
于 2013-08-29T04:25:34.263 に答える