我有许多期望参数和返回承诺的函数,不知道如何将各个参数传递给链中的每个参数。
fs.readFile('./img/thumbnail.png', function(error, data) {
module.create(body)
.then(module.uploadImage) //expects collection.uploadImage(data);
.then(module.requestInfo)
});
如何将承诺通过data
传递给module.uploadImage
作为参数?
答案 0 :(得分:1)
如果在您输入功能时已知数据,则可以使用.bind()
:
fs.readFile('./img/thumbnail.png', function(error, data) {
module.create(body)
.then(module.uploadImage.bind(module, data))
.then(module.requestInfo)
});
有关详细信息,请参阅description of .bind()
on MDN。
当然,你可以随时创建自己的包装函数,让你传递任何你想要的东西,包括计算参数:
fs.readFile('./img/thumbnail.png', function(error, data) {
module.create(body).then(function() {
return module.uploadImage(data);
}).then(module.requestInfo)
});
P.S。请不要忽略fs.readFile()
回调的错误检查。
答案 1 :(得分:0)
使用匿名函数:
fs.readFile('./img/thumbnail.png', function(error, data) {
module.create(body)
.then(function(){ module.uploadImage(data); }) //expects collection.uploadImage(data);
.then(module.requestInfo)
});