function art(dataToArt){
var figlet = require('figlet');
var result;
figlet(dataToArt, function(err, data) {
if (err) {
console.log('Something went wrong...');
console.dir(err);
return;
}
var result = data;
});
return result;
}
test = art('Hello World');
console.log(test);
运行这会产生“未定义”。如何访问函数figlet对函数figlet外部定义的变量结果所做的更改。访问变量超出范围? nodejs
好像'figlet'是一个异步函数。你不能。您需要在回调中完成所有工作。 –
我使用的是https://www.npmjs.com/package/figlet,我从来没有使用nodejs –
“[为什么我的变量在函数内部修改后没有改变?](http:// stackoverflow .com/questions/23667086/why-is-my-variable-un -tered-after-i-modify-it-inside-of-a-function-asynchron)“虽然,你在多个作用域中声明了'result',所以你'返回一个不同的'结果',而不是你分配'数据'。但是,改变('result = data;'不带'var')不会解决执行时间问题。 –