nodejs Async详解之二:工具类
Async中提供了几个工具类,给我们提供一些小便利: memoize unmemoize log dir noConflict 1. memoize(fn, [hasher]) 有一些方法比较耗时,且对于相同的输入总是有相同的输出。这时可以使用memoize给它加个缓存,对于相同的参数只计算一次,以后就直接从缓存中取结果用了。 比如这里有一个很慢的函数: var slow_fn = function(x, y, callback) { console.log(‘start working for: ‘ + x+’,'+y); t.wait(100); console.log(‘finished: ‘ + x+’,'+y); callback(null, ‘im slow for: ‘+x+’,'+y); }; 可以用memoize生成一个新的带缓存的函数: var fn = async.memoize(slow_fn); 试试同样参数调用两次: fn(‘a’,'b’, function(err, result) { console.log(result); }); // 直接得到之前计算好的值 fn(‘a’,'b’, function(err, result) { console.log(result); }); 注意memoize的参数中还有一个hasher,它是做什么用的呢