首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否访问作用域之外的变量?nodejs

是否访问作用域之外的变量?nodejs
EN

Stack Overflow用户
提问于 2016-03-07 01:03:37
回答 2查看 11.9K关注 0票数 7
代码语言:javascript
复制
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);

运行此命令会产生“未定义”。如何访问function figlet对function figlet外部定义的变量result所做的更改。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-07 01:24:58

这是异步代码。它不能返回。它必须有回调,并在作业完成后响应。

代码语言:javascript
复制
var figlet = require('figlet');

function art(dataToArt, callback)
{ 
    figlet(dataToArt, function(err, data) { 
        if (err) { 
            console.log('Something went wrong...'); 
            console.dir(err); 
            return callback(''); 
        } 

        callback(data);
    }); 
} 


art('Hello World', function (data){
    console.log(data);
    // also You can do operations here.
    // for example can save to db or send to somewhere.
});
票数 8
EN

Stack Overflow用户

发布于 2016-03-07 03:25:27

@num8eranswer是完全正确的。

我个人喜欢使用promises

代码语言:javascript
复制
var figlet = require('figlet');

function art(dataToArt) {
    return new Promise(function(fullfil, reject) {
        figlet(dataToArt, function(err, data) {
            if (err) {
                reject(err);
            } else {
                fullfil(data);
            }
        });
    });
}

art('Hello World').then(function(result) {
    console.log(result);
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35829759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档