我是nodejs和promises的新手。我需要将参数传递给我的promise链中的回调函数。看起来像下面这样:
var first = function(something) {
/* do something */
return something.toString();
}
var second = function(something, item) {
/* need to work with both the args */
}
我的承诺链看起来像
function(item) {
/* the contents come from first callback and the item should be passed as an argument to the second callback */
fs.readFile(somefile).then(first).then(second)
}
我应该将项目作为参数传递,我可以在不破坏链条的情况下执行此操作吗?
如果我完全错了,请纠正我。
由于
答案 0 :(得分:5)
将second
函数包装到匿名函数中并以这种方式传递参数:
function(item) {
/* the contents come from first callback and the item should be passed as an argument to the second callback */
fs.readFile(somefile)
.then(first)
.then(firstResult => second(firstResult, item))
}
答案 1 :(得分:-1)
您可以使用Function.prototype.bind()将项目传递给第二个函数
fs.readFile(somefile).then(first)
.then(second.bind(null, item))