我使用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