Dev*_*dev 30 javascript callback 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 = ?
Run Code Online (Sandbox Code Playgroud)
如何在exec函数外找到用户名?
Mat*_*orf 31
你可以传递exec函数回调.当exec函数确定用户名时,您使用用户名调用回调.
var child = exec(cmd, function(error, stdout, stderr, callback) {
var username = stdout.replace('\r\n','');
callback( username );
});
Run Code Online (Sandbox Code Playgroud)
由于JavaScript的异步特性,您无法执行以下操作:
var username;
var child = exec(cmd, function(error, stdout, stderr, callback) {
username = stdout.replace('\r\n','');
});
child();
console.log( username );
Run Code Online (Sandbox Code Playgroud)
这是因为该行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.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
62647 次 |
最近记录: |