Javascript中通过循环链接回调函数
Chaining Callback Functions through a Loop in Javascript
我不想同时预加载我的图像了,我想一个接一个地加载它们。到目前为止,我是这样做的:
for (var i = current; i < current + 5; i++) {
images[i].load();
}
所以我开始思考如何使用回调来顺序加载它们:我可以传递一个回调给load(callback)
,它将在一个图像加载后被调用。所以我也可以这样做它们会依次加载:
images[current].load(function(){
images[current + 1].load(function(){
images[current + 2].load(function(){
images[current + 3].load(function(){
images[current + 4].load();
});
});
});
});
这个可以工作,但是我想把它转换成一个循环。我不能绞尽脑汁去实现这个目标。你能帮忙吗?
我只能提供我的load(callback)
方法的一个例子,因为它太长了:
load = function(callback){
// do preloading things and simulate load event:
setTimeout(function(){
callback.apply(this);
}, 1000);
}
这里有一个测试方法:http://jsfiddle.net/ajuc7g1q/1/
可能是递归函数?
function loadImages(){
var images = [img1, img2, ...];
loadImage(images);
}
function loadImage(images){
if(images.length){
images.shift().load(function(){
loadImage(images);
});
}
}
我刚刚想出了递归的方法:
var call_chain = function(){};
for(var i = current + 5; i >= current; i--){
(function(f, index){
call_chain = function(){
images[index].load(f);
};
})(call_chain, i);
}
call_chain();
相关文章:
- 如何在点击超链接时调用fullcalendar回调
- 如何在分页期间链接回特定的jquery ui选项卡
- 如何在点击链接后从用户取消对话框中获得回调以选择移动应用程序
- href:链接回上一个页面上的某个类
- 如何在单击链接时使用 ajax 中的回调函数
- JSDoc 链接到回调函数
- 延迟链接 - 然后在上一个调用完成但出现错误时调用成功回调
- 在链接回以前访问过的页面时设置默认值
- 链接回Javascript控制页面的某个点
- 在自定义的 for-each 循环中链接回调,同时支持同步和异步函数
- j查询链接与动画函数的回调
- 如何在新页面中打开链接,然后从第 2 页链接回第 1 页
- 承诺链接:在next-then回调中使用上一个承诺的结果
- 在没有回调的情况下链接多个jquery事件
- 电话链接回退
- 链排队回调结果
- Javascript中通过循环链接回调函数
- Javascript中的链式回调可读性
- 为什么成功承诺的链式回调会在成功和失败时同时执行?
- 用锚标记链接回主页