我们如何从node.js中的回调函数访问变量
How can we access variable from callback function in node.js?
var sys = require('sys');
var exec = require('child_process').exec;
var cmd = 'whoami';
var child = exec( cmd,
function (error, stdout, stderr)
{
var username=stdout.replace(''r'n','');
}
);
var username = ?
如何在执行功能之外找到用户名?
您可以向 exec 函数传递回调。当 exec 函数确定用户名时,您可以使用用户名调用回调。
var child = exec(cmd, function(error, stdout, stderr, callback) {
var username = stdout.replace(''r'n','');
callback( username );
});
由于 JavaScript 的异步性质,你不能做这样的事情:
var username;
var child = exec(cmd, function(error, stdout, stderr, callback) {
username = stdout.replace(''r'n','');
});
child();
console.log( username );
这是因为行console.log( username );
不会等到上面的函数完成。
回调说明:
var getUserName = function( callback ) {
// get the username somehow
var username = "Foo";
callback( username );
};
var saveUserInDatabase = function( username ) {
console.log("User: " + username + " is saved successfully.")
};
getUserName( saveUserInDatabase ); // User: Foo is saved successfully.
您可以在具有回调的函数中编写"exec"语句...喜欢这个
var sys = require('sys');
var exec = require('child_process').exec;
var cmd = 'whoami';
function execChild(callback){
var child = exec( cmd,
function (error, stdout, stderr)
{
username=stdout.replace(''r'n','');
callback(username);
}
)};
execChild(function(username){
console.log(username);
});
相关文章:
- JavaScript回调函数
- 如何在回调函数中执行流
- 回调函数中传递参数的困难(Google Map API Markers)
- 如何正确地将参数传递给RequireJS回调函数
- 回调函数在python代码中离线
- 从AJAX回调函数中分离数据
- 赋值后的回调函数
- 如何在javascript回调函数中返回多个变量
- 函数表达式,返回回调函数
- 等待回调函数执行
- JavaScript回调函数和Google Feed API
- 如何从ajax成功回调函数中读取javascript变量
- 正在保存JavaScript内部回调函数中的值
- 有没有什么方法可以停止Jquery中的animate(也可以停止完整的回调函数)
- 如何在javascript中添加带有回调函数的按钮点击事件作为window.conf
- 在Golang回调函数中启用CORS
- 在初始函数完成之前调用回调函数
- jQuery Mobile:如何在$.Mobile.changePage之前运行回调函数
- 即使使用回调函数也无法返回值
- 为什么prototypjs观察到回调函数有绑定