在函数node.js中使用瀑布

时间:2014-12-10 15:02:52

标签: javascript node.js asynchronous

我试图下载一些图片并对它们做一些逻辑。 问题是我不能说出瀑布内的整个功能,因为它是外部模块的一部分。

原则是:

function asyncGetImage(link, onResp){
    request({url: link, encoding: null}, function (err, res, body) {
        if (!err && res.statusCode === 200) {
            var base64prefix = 'data:' + res.headers['content-type'] + ';base64,';
            var image = body.toString('base64');
            onSuccess(image, base64prefix);
        } else {
            console.log("errororororor");
            onResp(null,null);
        }
    });
}
 function getBase64Images (urlArray){
        async.waterfall([
            function(callback){
                var responses = {};
                var respCount = 0;
                urlArray.forEach(function (item){
                    asyncGetImage(item.url,function (image,base64prefix){
                        responses[item.key] = {image:base64prefix+image,ratio: item.ratio};
                        respCount+=1;
                        if (urlArray.length === respCount) {
                            callback(null,responses);
                        }
                    });
                });

            }
        ],
            function(err,response){
                if(err){
                    console.log("ereprwertwertwerter");
                }
                console.log(response);
                return response;
            }
        );
    }

function applyLogic(urlList){
    // do some code here
    return getBase64Images(imageUrls);

}

0 个答案:

没有答案