加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS promise未使用$interval多次解析

发布时间:2020-12-17 09:53:19 所属栏目:安全 来源:网络整理
导读:很惊讶地看到为什么 angularjs promise没有使用$interval服务多次解决.以下是我的代码.变量i多次递增,但承诺仅解析一次. var app = angular.module('plunker',[]);app.controller('MainCtrl',function($scope,myService) { myService.then(function(result)
很惊讶地看到为什么 angularjs promise没有使用$interval服务多次解决.以下是我的代码.变量i多次递增,但承诺仅解析一次.
var app = angular.module('plunker',[]);
app.controller('MainCtrl',function($scope,myService) {
    myService.then(function(result) {
        $scope.i = result;
    });
});
app.factory('myService',function($interval,$q) {
    var deferred = $q.defer();
    var i = 0;
    $interval(function() {
        i += 1;
        deferred.resolve(i);
    },2000);
    return deferred.promise;
});

Plunker

使用AngularJS,您可以使用$q( https://docs.angularjs.org/api/ng/service/ $q)的通知功能而不是解析:
var app = angular.module('plunker',myService) {
    // Notice that the third callback is for notify
    myService.then(null,null,function(result) {
        $scope.i = result;
    });
});
app.factory('myService',$q) {
    var deferred = $q.defer();
    var i = 0;
    $interval(function() {
        i += 1;
        deferred.notify(i);
    },2000);
    return deferred.promise;
});

您可能希望添加$interval.cancel()以在某个点/条件(https://docs.angularjs.org/api/ng/service/ $interval)停止循环.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读