将附加参数添加到函数签名

时间:2015-08-13 11:35:09

标签: javascript promise bluebird

我使用以下代码按预期工作。 现在我想将modifyOpt的其他输入添加为modifyOpt(value) 我该怎么办? 目前,modifyOpt从findAPortAsync获取一个参数,我需要从外部 ...传递附加参数(来自包装所有这个承诺的函数)

return Promise.all([
    fs.readFile(filePath, 'utf8').then(pars.getEx.bind(null, 'user')), 
    sync(3000, 4000, 'localhost').then(modifyOpt)
]).then(function(args) {
    return processExe('exec', args[0], args[1], args[1]);
}) 

我尝试了modifyOpt(value)modifyOpt.bind(value)没有工作

1 个答案:

答案 0 :(得分:0)

如果您想将此功能称为modifyOpt(value, port),请执行以下操作:

.then(modifyOpt.bind(null, value))

bind的第一个参数是this值,函数参数跟随...
您已经为pars.getEx.bind ...

正确地执行了此操作

当然,您可以随时执行此操作并使用您选择的任何参数顺序:

.then(function (port) { modifyOpt(port, value); })