我使用Jimp来操纵一些照片。如何避免jimp阻止代码node.js
我有一张照片阵列。就像这样:
var images = ['.../pic-1.jpg', '.../pic-2.jpg', '.../pic-3.jpg', '.../pic-4.jpg'];
这是操纵他们的代码:
images.forEach(function(image){
jimp.read(image, function(err, img){
img.quality(90, function(){
console.log("done with this image!");
});
});
});
这工作不错,当每个图像都做了记录。但是,它阻止了代码,如果我尝试这样做:
var processed = 0;
images.forEach(function(image){
jimp.read(image, function(err, img){
img.quality(90, function(){
processed++;
document.querySelector('p').textContent = 'processed images: ' + processed;
});
});
});
它不更新文本,直到处理完所有图像。我怎样才能解决这个问题,这样我就可以在每次处理图像时更新文本?
超时工作。这将确保它发生在下一个事件中。 – bhspencer
我不明白对不起,怎么这样? – nick
我在这段代码中看不到任何阻塞。内部forEach所有调用似乎是异步的。 – Ananth