有没有一种更好的方法可以使用诺言在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))


只是希望找到一个非常简单的解决方案,但没有一个奏效。

谢谢!

最佳答案

当然可以这样设置:

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))
});

07-26 05:45