Node.js var作用域困难

时间:2018-11-14 16:05:16

标签: node.js express ejs

我遇到了节点问题。我正在尝试使用一种语言检测算法,但是我在使用示波器时遇到了麻烦。

将响应保存到“ langVastus”,然后将语言提取为“龙骨”之后,我在Algorithmia函数内部获得了正确的结果,但在外部却没有。

控制台日志打印输出

Inside: en
Outside: 

代码如下:

var langVastus = "";
    var keel = "";

    Algorithmia.client("simpIVxv0Ex5Xen1bVCLVXnxYpr1")
        .algo("nlp/LanguageIdentification/1.0.0")
        .pipe(input)
        .then(function(response) {
            langVastus = response.get();
            keel = langVastus[0].language;
            console.log("Inside: " + keel);
        });

    console.log("Outside: " + keel);
    res.render("lang", {keel: keel});

我在做什么错了?

2 个答案:

答案 0 :(得分:0)

问题是我在路由内初始化了变量。把它带到路线之外解决了我的问题:)

答案 1 :(得分:0)

您正在调用“ Inside”的代码块似乎在promise回调中运行。

在这种情况下,外部日志将在调用回调之前运行。