For循环等待:jquery
我正在尝试将多个图像保存到文件api。ids数组具有多个作为blob的图像。这里我的问题是,第一个警报即“警报”(“image”+i+“.png”);”被触发4次,然后只有第二个警报第一次被触发。我怎样才能让它一个接一个地被触发 请帮忙,For循环等待:jquery,jquery,fileapi,Jquery,Fileapi,我正在尝试将多个图像保存到文件api。ids数组具有多个作为blob的图像。这里我的问题是,第一个警报即“警报”(“image”+i+“.png”);”被触发4次,然后只有第二个警报第一次被触发。我怎样才能让它一个接一个地被触发 请帮忙, 谢谢,setTimeout不会停止执行并等待函数完成。它立即返回。然后在定义的毫秒后调用传递给它的函数 for (var i in ids) { alert("image" + i + ".png"); setTimeout
谢谢,setTimeout不会停止执行并等待函数完成。它立即返回。然后在定义的毫秒后调用传递给它的函数
for (var i in ids) {
alert("image" + i + ".png");
setTimeout(function () {
(function () {
fs.root.getFile("image" + i + ".png", {
create: true
}, function (fileEntry) {
alert("fileimage" + i + ".png");
console.log(fileEntry);
fileEntry.createWriter(function (fileWriter) {
fileWriter.onwriteend = function (e) {
console.log("image successfully written to filesystem.");
};
var blob = new Blob([ids[i]]);
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
})(i)
}, i * 1000);
}
这会一个接一个地触发您的4个警报,因为它在循环中,不关心是否加载图像
第二个警报似乎在fs.root.getFile结束并触发回调时触发
你可以尝试以下方法
for (var i in ids) {
alert("image" + i + ".png");
for (var i in ids) {
setTimeout(function () {
// alert("image" + i + ".png"); // here will be delayed also
(function () {
alert("image" + i + ".png");
fs.root.getFile("image" + i + ".png", {