我需要加载n个图形,但不是等待浏览器冻结1分钟,我希望在创建/渲染第一个图形后,它会在移动到下一个图形之前出现在屏幕上。
我使用的“策略”在我的代码的另一部分中起作用,为什么不在这里工作?
代码:
var i = -1;
var total = 10;
function moveToTheNext() {
saySomething()
.then(function() {return $timeout(function(){},1000);})
.then(nextChart());
}
function saySomething() {
console.log('hey')
var deferred = $q.defer();
deferred.resolve();
return deferred.promise;
}
function nextChart() {
i++;
if (i <= total) {
// some stuff
chart[i] = new Highcharts.Chart({
//....
},moveToTheNext());
}
}
UPDATE 错误在于执行nextChart函数
function moveToTheNext() {
saySomething()
.then(function() {return $timeout(function(){},1000);})
.then(function() {nextChart();});
}
现在有效:)
答案 0 :(得分:0)
已解决,请参阅问题中的更新代码