gpt4 book ai didi

javascript - 如何让 JavaScript 回调工作

转载 作者:行者123 更新时间:2023-12-03 07:15:14 25 4
gpt4 key购买 nike

我最近开始学习Javascript,由于我来自Windows开发世界,所以我很难接受一些JS技术..

我正在尝试使用 FileReader 将多张图片同时加载到页面中。我知道我需要使用异步回调,但似乎我无法让它工作。

这是我的代码:

function loadFile(file, callback) {
var reader = new FileReader();
reader.onload = function(file) {
var output = document.createElement('input');
output.type = 'image';
output.classList.add('image-responsive');
output.src = reader.result;

var x = document.getElementById('OrigName');
x.appendChild(output);
}
loadFile(file, callback);

}

for (var i = 0; i < evt.target.files.length; i++) {
var file = evt.target.files[i];
loadFile(file);
}

有人可以帮我解决这个问题吗?

最佳答案

我认为您误解了回调的工作原理。您可能想要更像这样的东西:

function loadFile(file, callback) {
var reader = new FileReader();
reader.onload = function(file) {
var output = document.createElement('input');
output.type = 'image';
output.classList.add('image-responsive');
output.src = reader.result;

var x = document.getElementById('OrigName');
x.appendChild(output);
return callback(output);
}

}

evt.target.files.forEach(function (file) {
loadFile(file, function (output) {
console.log(output);
});
})

加载每个文件后,这将输出 console.log 。但您应该注意,文件的加载顺序可能与数组中的顺序不同。

关于javascript - 如何让 JavaScript 回调工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36454220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com