一連のファイルを非同期で開き、そのコンテンツを読み取るスクリプトを実行しようとしています。のコールバックがデータなしで入ってくるというエラーが発生しfs.readFile
ていますが、ファイルはそこにあり、現在他のものによって開かれていません。完全に混乱しています。
エラーは次のとおりです。
エラー: OK、「D:\Workspace\fasttrack\public\cloudmade\images\998\256\6\31\61.png」を開きます
より詳しい情報:
プログラムは、次のような一連のオブジェクトを含むループを実行します。
newObject = {
filePath:filePath,
scanPixels:function(parent){
....
}
}
ループは各オブジェクトのscanPixels
関数を呼び出しますfs.readFile
。parent.filePath
これがforループです
for(var index=0;index<objects.length;index++){
objects[index].scanPixels(objects[index]);
}
scanPixels 関数は基本的に次のとおりです。
scanPixels:function(parent){
png_js.decode(parent.filePath, function(pixels){
...more stuff
そしてpng_jsファイルで:
PNG.decode = function(path, fn) {
return fs.readFile(path, function(err, file) {
var png;
png = new PNG(file);
return png.decode(function(pixels) {
return fn(pixels);
});
});
};