【问题标题】:multiple $interval Angular JS prob多个 $interval Angular JS 概率
【发布时间】:2015-04-01 09:03:58
【问题描述】:

这个输出不是我想要的,我不知道问题出在哪里,通常它应该在开始第二个循环之后完成第一个间隔,但结果是这样的:

我的 j : 4

我的我:4

我的 j : 3

我的我:5

我的 j : 2

我的我:6

但我想要的是在开始第二个循环之后完成第一个循环。

提前致谢

        var pos = new google.maps.LatLng(53, 91);
        var j = $scope.map.zoom;
        $interval(function () {
            $scope.map.setZoom(j--);
            console.log(" my j :"+j);
        }, 500, 3);// Zoom out after 0.5 sec

        $scope.map.panTo(pos); // Pan map to that position

        var i = $scope.map.zoom;
        $interval(function () {
            $scope.map.setZoom(i++);
            console.log("my i :"+i);
        }, 500, 3);// Zoom in after 0.5 sec

【问题讨论】:

    标签: angularjs google-maps-api-3 angularjs-directive


    【解决方案1】:

    当第一个间隔的承诺解决时,您可以开始第二个间隔:

    $interval(function () {
        $scope.map.setZoom(j--);
        console.log(" my j :"+j);
    }, 500, 3).then(function() {
        var i = $scope.map.zoom;
        $interval(function () {
            $scope.map.setZoom(i++);
            console.log("my i :"+i);
        }, 500, 3);
    });
    

    【讨论】:

    • 谢谢它的工作,但我不知道为什么在开始第二个间隔之前有一点时间,你知道为什么吗?
    • 那是因为它需要 500 毫秒才能开始运行。你可以在间隔之前做一个 $scope.map.setZoom ,并将计数从 3 更改为 2
    猜你喜欢
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2016-07-23
    相关资源
    最近更新 更多