听取$ q的通知优于$有角度的广播?

时间:2015-12-30 06:11:50

标签: angularjs angular-promise

角度社区不鼓励使用$ broadcast,所以我试图找到替代方法。需要有关这种做法有效性的建议。

var deffered = $q.defer();

var getPromise = function () {
    return deffered.promise;
};

var notify = function () {
    deffered.notify('Hello');
};

var listenToNotification = function () {
    getPromise().then({}, {}, function (data) {
        console.log(data);
    });
};

var notify = function () {
    $scope.$broadcast('someEvent', 'Hello');
};

var listenToNotification = function () {
    $scope.$on('someEvent', function (event, data) { 
        console.log(data); 
    });
};

1 个答案:

答案 0 :(得分:0)

Angular是在ajax上做CRUD主要的,其中一个很棒的功能就是承诺。但是承诺并不意味着像广播一样引发事件。 这是主要区别。

广播是您可以在代码中注册特定事件的内容。 承诺等待它完成并通知您。 所以根据你想要做的事情,广播是事件驱动的,承诺应该与你的ajax调用一起使用