永远不会调用async.each的最终回调函数。我究竟做错了什么?

时间:2017-10-28 14:31:57

标签: node.js async.js

此功能是async.waterfall
的一部分 arr包含2个具有foldername,文件名,宽度,高度等的对象 我想对每个文件执行文件操作,并将这2个文件放在另一个数组photoArr中 然后我想将photoArr数组传递给async.waterfall中的下一个函数 问题是:
我无法到达回调函数,这是async.each的第三个参数。控制台记录calling next,但从不记录oops errorhere hi

function(arr, image, callback) {
    console.log("function3");
    var photoArr = [];
    async.each(arr, function(value, next) {
        Jimp.read(`${photosDirectory}/${value["Folder"]}/${value["Photo"]}.jpg`, (err, photo) => {
            if(err) next(err);
            else {
                photo.resize(value["Size-X(cm)"] * 37.8, value["Size Y(cm)"] * 37.8).rotate(-90);
                photoArr.push(photo);
                if(photoArr.length == 2) {
                    console.log('calling next');
                    next(null);
                }
            }
        });
    }, function(err) {
        if(err) {
            console.log('oops error');
            console.log(err);
        } else {
            console.log("here hi");
            console.log(photoArr.length);
            callback(err, arr, image, photoArr);
        }
    });
}

0 个答案:

没有答案