使用promise是否有更好的方法在Node.JS中执行以下操作:
var y = "...";
promise.using(getDatabaseConnection() function(connection) {
return connection
.query("some sql")
.then(function(result) {callAnotherFunction(result, y);}
.catch(function(error) {callAnotherFunction(error, y);}
});
这有效,但看起来有点笨拙/难以阅读。我试过了:
.then(callAnotherFunction.bind(null, y))
如另一篇SO帖子和
所示.then(callAnotherFunction(y))
只是希望有一个非常简单的解决方案,但都没有效果。
谢谢!
答案 0 :(得分:3)
我看到你在这里使用LicenseGenerator.exe "C:\Folder\input.xml" "C:\Folder\output.xml"
所以假设蓝鸟,也将假设现代节点:
$inputtest = "C:\Folder\Input.xml"
$outputtest = "C:\Folder\Output.xml"
$licensegen = "C:\Folder\LicenseGenerator.exe"
Invoke-Command $licensegen "$inputtest" "$outputtest"
虽然,函数应该只返回结果的承诺,而不是调用延续,因为它更可组合这种方式。
答案 1 :(得分:1)
当然你可以这样设置:
const callAnotherFunction = function(y) {
return function(result) {
console.log('y',y);
console.log('result',result);
return 'something'
}
}
promise.using(getDatabaseConnection() function(connection) {
return connection
.query("some sql")
.then(callAnotherFunction(y))
.catch(callAnotherFunction(y))
});