Я хочу сделать задержку внутри моей петли for
, но она не будет работать. Я уже пробовал свои способы, которые находятся в stackoverflow, но только никто из них не работает для того, что я хочу.Задержка внутри петли не работает
Это то, что я получил прямо сейчас:
var iframeTimeout;
var _length = $scope.iframes.src.length;
for (var i = 0; i < _length; i++) {
// create a closure to preserve the value of "i"
(function (i) {
$scope.iframeVideo = false;
$scope.iframes.current = $scope.iframes.src[i];
$timeout(function() {
if ((i + 1) == $scope.iframes.src.length) {
$interval.cancel(iframeInterval);
/*Change to the right animation class*/
$rootScope.classess = {
pageClass: 'nextSlide'
}
currentId++;
/*More information about resetLoop at the function itself*/
resetLoop();
} else {
i++;
$scope.iframes.current = $scope.iframes.src[i];
}
}, $scope.iframes.durationValue[i]);
}(i));
}
alert("done");
Это то, что я хочу: Прежде всего я получил объект, хранящий src
, duration
и durationValue
. Я хочу воспроизвести оба видео, которые у меня есть в моем объекте.
- проверить, сколько видео-х я получил
- я сделать
iframeVideo
видимые (ngHide
) - Я вставить право тега в мой сНе контейнер
- Он начинает
$timeout
с правым значением длительности - Если это так, сделайте то же самое, если есть другое видео. Когда это было последнее видео, он должен был сбить какой-то код.
Надеюсь, все ясно.
Я также попытался это:
var iframeInterval;
var i = 0;
$scope.iframeVideo = false;
$scope.iframes.current = $scope.iframes.src[i];
iframeInterval = $interval(function() {
if ((i + 1) == $scope.iframes.src.length) {
$interval.cancel(iframeInterval);
/*Change to the right animation class*/
$rootScope.classess = {
pageClass: 'nextSlide'
}
currentId++;
/*More information about resetLoop at the function itself*/
resetLoop();
} else {
i++;
$scope.iframes.current = $scope.iframes.src[i];
}
}, $scope.iframes.durationValue[i])
Каковы значения '$ scope.iframes.durationValue [i]', потому что это используемая задержка ... –
Intergers, например, '10000' и' 171000'. – SjaakvBrabant
Циклы не могут быть отложены, вам нужно узнать, как работают JS [таймеры] (https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers). – Teemu