NodeJS不会逐步执行命令

时间:2017-06-10 05:13:57

标签: node.js asynchronous

我有这个代码从JSON获取值,解析成文本,并希望将文本返回到我的聊天机器人。

Here are the lists of the boards, followed by the slug

但是,记录和返回的所有文本都是Request(),并且不包含已解析的JSON。

如果JSON解析出错,NPM应该停止,但是,它没有。

我是NodeJS的新手。这是关于一个叫async的东西,它使命令不能按顺序执行吗?

使用的{{1}}函数是从https://github.com/request/request获得的。

1 个答案:

答案 0 :(得分:0)

由于NodeJs的行为是Async,因此Request是一个承诺,因此只要执行Request行,执行就会到达下一行。它不会等待Request的回调函数被执行。您可能需要重写以下代码才能使其正常工作。

rooms: function(){
    var board, text = "Here are the lists of boards, followed by the slug:\n\n";
    Request('https://[redacted]/api/1.0/boards/', function (error, response, body) {
        board = JSON.parse(JSON.minify(body));
        for(var i=0; i<board.length; i++){
            text += board[i].title + ": `" + board[i].slug + "`\n";
        }
        text += "\n Shows the list of topics in specific board with `!fbot view [slug]`";
    console.log(text);
    return text;
    }); 
}

这可能会有所帮助