前言,我使用BlueBird重写从回调到Promises的代码(Bluebird很棒BTW),我正在尝试重构我的代码:
我有一个将在不同情况下使用的功能,这个:
var promote = function(request){
var destination_build = request.params.destination_build;
return sanitizeInput(request
).then(getPackagesWithIndex.bind(undefined, destination_build, 'destination_build')
).then(preparePackages
).mapSeries(updatePackage)
}
我正在链接这样的函数以获得所需的结果:
console.log
当我request
结果时,参数的顺序似乎搞砸了:
indexValue
得到{{1}}的值,是否有办法保持秩序?
答案 0 :(得分:0)
bind
method的第一个参数(与Bluebird无关,顺便说一下)是函数调用的this
值。虽然参数仍然有序。
因此,当您使用getPackagesWithIndex.bind(undefined, destination_build, 'destination_build')
作为then
回调时,最终将使用
getPackagesWithIndex
this
undefined
上下文
request
destination_build
indexName
'destination_build'
indexValue
如果这只是转移,请在前面添加null
之类的内容;如果你想要一个altogher不同的顺序,你最好使用包含显式调用的函数表达式。