Angular的承诺装饰器得到解析

Angular Promise Promise Decorator get Resolve

本文关键字:承诺 Angular      更新时间:2023-09-26

我试图得到一个消息时,承诺解决完成

$provide.decorator('$q', function ($delegate) {
    var defer = $delegate.defer;
    $delegate.defer = function () {
        var deferred = defer();
        console.log("defer");
        return deferred;
    };
    $delegate.resolve = function () {
        var resolved = resolve();
        console.log("resolve");
        return deferred;
    };
    return $delegate;
});

我不确定它是否完全正确,但是为了想象,它看起来像这样

$provide.decorator('$q', function ($delegate) {
    var defer = $delegate.defer;
    $delegate.defer = function () {
        var deferred = defer(),
            resolve = deferred.resolve;
        deferred.resolve = function(data) {
            console.log('resolved');
            return resolve(data);
        };
        return deferred;
    };
    return $delegate;
});