异步.应用于async.waterfall内部
async.apply inside async.waterfall
我有以下代码片段
async.waterfall([
// Read directory
async.apply(fs.readdir, '../testdata'),
// Load data from each file
function(files, callback) {
async.each(files, loadDataFromFile, callback);
}
], function(err) {
if (err) {
api.logger.error('Error while inserting test data', err);
}
next();
});
我能不能把这块替换掉?
function(files, callback) {
async.each(files, loadDataFromFile, callback);
}
只有一个函数的 ?像上面一样,使用async.apply()
,我替换了这个:
function(callback) {
fs.readdir('../testdata', callback);
}
我知道我可以创建自己的辅助函数来做到这一点,或者我可以这样离开它,但我想知道是否有一种方法可以只使用.bind()
或.apply()
这样的函数来做到这一点。
我想过使用.bind()
然后.apply()
,但这会导致function(loadDataFromFile, files, callback)
,这是不好的。
我想知道是否有一种方法可以只使用。bind()或。apply()这样的函数来做到这一点。
不使用原生函数,或者似乎只使用async
的函数。正如您所注意到的,需要flip
each
函数。部分应用程序的某些实现(如Underscore)允许使用中间参数,但您需要显式地包含它们。
lodash的partialRight
:
async.waterfall([
_.partial(fs.readdir, '../testdata'), // Read directory
_.partialRight(async.each, loadDataFromFile), // Load data from each file
], function(err) {
if (err)
api.logger.error('Error while inserting test data', err);
next();
});
可能您需要将bind
方法设置为正确的上下文,如fs.readdir.bind(fs, '../testdata')
。
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调用函数内部的函数
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 在phonegap应用程序内部重定向不起作用
- 使用此选项选择父类内部的类
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- AngularJs指令,该指令创建内部有数据对象的新指令
- 如何使用内部对象构造对象
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- 用Javascript修改内部标记的CSS规则
- javascript函数内部的代码用逗号而不是分号分隔
- 正在$rootScope上达到控制器作用域$在内部控制器上
- 光线投射从内部投射时不会碰到网格
- javascript无法重新定义函数内部的全局对象
- 在不移动内部文本的情况下缩放元素的效果
- JavaScript goto 标签如何使用内部循环
- Javascript:循环属性内部的条件递增或递减
- 将当前用户的 ID 推送到 meteorjs 中集合/文档的内部数组
- 异步.应用于async.waterfall内部