Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 执行一系列$timeout_Javascript_Angularjs - Fatal编程技术网

Javascript 执行一系列$timeout

Javascript 执行一系列$timeout,javascript,angularjs,Javascript,Angularjs,我正在开发AngularJS应用程序。应用程序需要交替超时。这个交替由一个数组处理。数组看起来像这样[3000,1000,3000,1000,5000] 此数组表示运行一个操作三秒钟。那么,等一下。然后运行另一个操作3秒钟。然后再等一秒钟。最后,运行另一个操作5秒钟。操作将有所不同。不管怎样,我都不知道如何按顺序执行它们 如何在AngularJS中执行一系列$timeout元素 谢谢大家! 这听起来像是一种更好的自定义计时器,因为您需要跟踪时间,而不仅仅是延迟操作 不知何故,您需要对数据进行格式

我正在开发AngularJS应用程序。应用程序需要交替超时。这个交替由一个数组处理。数组看起来像这样
[3000,1000,3000,1000,5000]

此数组表示运行一个操作三秒钟。那么,等一下。然后运行另一个操作3秒钟。然后再等一秒钟。最后,运行另一个操作5秒钟。操作将有所不同。不管怎样,我都不知道如何按顺序执行它们

如何在AngularJS中执行一系列$timeout元素


谢谢大家!

这听起来像是一种更好的自定义计时器,因为您需要跟踪时间,而不仅仅是延迟操作

不知何故,您需要对数据进行格式化,使其具有每次操作的运行和暂停时间。大概是这样的:

var operations = [{fun: oneFunction, wait: 1000, run: 3000}, {fun: twoFunction, wait: 2000, run: 5000];
然后,您需要处理这些函数,并在它们各自的时间内运行它们:

function handleOperations(operationArray) {
    for (var i = 0; i < operationArray.length; i++) {
         var start = Date.now();
         if ((Date.now()-start) <= operationArray[i].run) {
             operationArray[i].fun(); //run while the timer is still going
         } else {
             //otherwise, wait for specified time
             var waitStart = Date.now();
             if ((Date.now()-waitStart) <= operationArray[i].wait) {};
         }
    }

}
功能手柄操作(operationArray){
对于(var i=0;i如果((Date.now()-start)你是什么意思运行某项操作3秒钟?你是否在循环中运行一些计算3秒钟?如果你这样做,你会将UI锁定3秒钟。在这段时间内你实际运行的是什么操作?