我不想更改现有的API来获取与数据库的连接。签名看起来像
getDBConnection(function(error, DBConnection) {
// do biz logic
});
我想在getDBConnection
中使用另一个变量exports.doSomething = function(foo) {
getDBConnection(function(error, DBConnection) {
logger.info(foo);
});
};
但是foo在getDBConnection回调中是未定义的。我有什么办法可以在getDBConnection中访问Foo吗?
答案 0 :(得分:0)
foo
仍在范围内,但在调用回调之前,它可能会被其他一些代码覆盖。您只能为使用IIFE的回调明确创建一个新的foo
作用域:
var foo;
getDBConnection((function(foo) {
return function(error, DBConnection) {
// foo = whatever it was
}
})(foo));