node.js - Nodejs 使用 readline 时暂停

标签 node.js loops readline

我对 Nodejs 很陌生,我正在尝试创建一个交互式 shell 脚本来回复我的 Facebook 墙上的帖子。问题是当我在循环中使用 Readline 模块时,它不会停止,只是继续循环。

这是我的完整代码

var access_token = 'XXX';
var myId = 'XXX';
var FB = require('fb');
var url = require('url');
var utf8 = require('utf8');
var readline = require('readline');

var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

FB.setAccessToken(access_token);
function getWallFeeds(feedLink, args) {
     FB.api(feedLink, 'get', args, function (res) {
        if (!res || res.error) {
            console.log(!res ? 'error occurred' : res.error);
            return;
        }

        processMessage(res.data);

        var nextLinkParts = url.parse(res.paging.next, true);

        var args = {
            limit: nextLinkParts.query.limit,
            until: nextLinkParts.query.until,
            access_token: nextLinkParts.query.access_token
        }
        getWallFeeds(feedLink, args);
    });
}

function processMessage(data) {
    for (i in data) {
        if (data[i].from.id!=myId) {
            name = data[i].from.name;
            message = data[i].message;
            post_id = data[i].id;
            console.log(post_id + ') ' + name+': '+utf8.encode(message));

            rl.question("Please enter you reply: \n\n", function(answer) {
                // Use answer and call FB api to post to comment..
                rl.close();
            });
        }
    }
}

feedLink = 'me/feed';
getWallFeeds(feedLink, {});

这是示例结果

1020284792662_1020291351526) John: ....
Please enter you reply:

1020284792662_1020290585671) Ace: How are you!
Please enter you reply:

1020284792662_1020290581815) Nic: Hello there
Please enter you reply:

最佳答案

我已经解决了这个问题,我使用了模块readline-sync 。我花了 3 个小时寻找这个答案。

关于node.js - Nodejs 使用 readline 时暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26687282/

相关文章:

python - Python 中的异步 cmd 或 readline

javascript - 如何在两个不同的接口(interface)之间建立socket.io连接?

node.js - Firebase 控制台显示自定义身份验证的空标识符

php - 数组值存入mysql

javascript - 将多个数组中的值存储到一个数组中(JavaScript/Reactjs)

node.js - createInterface 在终端中打印两次

php - 将 Angular 4 与 ngserve 和 php 项目集成到现有的 apache 实例中

javascript - 有没有类似于 CoffeeScript 或 JavaScript 的 ActiveModel 的东西?

php - 一个 PHP 循环问题

Bash:C-d 的真正作用是什么?