如何在Node.js中无限阅读

用户名
while(1){
    rl.question("Command: ",function(answer){
    console.log(answer);
    })
}

刚刚尝试过此代码,但取而代之的是逐个输入,它使“ Command:”行闪烁。我知道node.js是非阻塞的,但我不知道如何解决此问题。

迈尼丹尼
var readline = require('readline');
var log = console.log;

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

var recursiveAsyncReadLine = function () {
  rl.question('Command: ', function (answer) {
    if (answer == 'exit') //we need some base case, for recursion
      return rl.close(); //closing RL and returning from function.
    log('Got it! Your answer was: "', answer, '"');
    recursiveAsyncReadLine(); //Calling this function again to ask new question
  });
};

recursiveAsyncReadLine(); //we have to actually start our recursion somehow

关键是不要使用同步循环。我们rl.question在处理完答案后再询问递归是必经之路。我们定义了问问题并处理答案的函数,然后在答案处理后从内部调用它。这样,我们就像从常规循环开始一样从头开始。但是循环并不关心ansyc代码,而我们的实现却在乎。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Node.js中无限阅读

来自分类Dev

如何在Node.js / Javascript中停止无限循环

来自分类Dev

如何避免/防止 Node.js 中的无限递归调用?

来自分类Dev

如何在Node JS中打印对象

来自分类Dev

如何在node.js中搜索?

来自分类Dev

如何在Node js中创建图像?

来自分类Dev

如何在Node JS中执行forloop

来自分类Dev

如何在 Node js 中添加会话

来自分类Dev

如何在 JS 中为无限跑酷类型的游戏制作无限的画布

来自分类Dev

在 Node.js/Express.Js 中打破无限循环

来自分类Dev

如何阅读Firebase Node.js模块?

来自分类Dev

如何在node.js中渲染three.js?

来自分类Dev

如何在Node JS / Express JS Project中读取文件?

来自分类Dev

如何在Node.js中从Promise中获取价值

来自分类Dev

如何在 Node.js 中加密?

来自分类Dev

Node.js中的无限循环是不可能的吗?

来自分类Dev

如何在node-rdkafka中一一阅读消息

来自分类Dev

如何在Node中承诺并等待setImmediate?

来自分类Dev

如何在Node中设置API环境

来自分类Dev

如何在JavaFX中处理Node焦点

来自分类Dev

如何在Express Node JS中获取删除请求的参数

来自分类Dev

如何在node.js中获取HTML页面语言?

来自分类Dev

如何在Node.js中组织与DB的交互?

来自分类Dev

如何在Node JS中获取对象的类名

来自分类Dev

如何在Node.js中同步读取文件内容?

来自分类Dev

我如何在Node.js中连接到星号

来自分类Dev

如何在Node.js中对流进行Gunzip?

来自分类Dev

Node.js:如何在查询聚合中返回对象?

来自分类Dev

如何在node.js中管道到Redis?