为什么不是';当循环在节点中运行时,是否使用此javascript?
我试图使它,使程序重复接受输入,并重复它回来,直到“退出”输入。现在循环没有运行,我不知道为什么,因为exit变量被设置为false。这是我的密码:为什么不是';当循环在节点中运行时,是否使用此javascript?,javascript,node.js,while-loop,Javascript,Node.js,While Loop,我试图使它,使程序重复接受输入,并重复它回来,直到“退出”输入。现在循环没有运行,我不知道为什么,因为exit变量被设置为false。这是我的密码: var read = require("read"); var exit = false; function OutsideLoop (exit) { while(exit === false){ read({prompt: "> "}, function (err, result) { consol
var read = require("read");
var exit = false;
function OutsideLoop (exit) {
while(exit === false){
read({prompt: "> "}, function (err, result) {
console.log("");
console.log(result);
console.log("Type in more input or type 'exit' to close the program.");
if(result === "exit"){
exit = true;};
});
};
};
OutsideLoop();
谢谢你们的帮助。我有一个类似的循环,使用if/then而不是while,所以我按照同样的思路重写了这个循环 您已将“exit”声明为函数的参数,因此外部声明对函数内部的逻辑没有影响。调用函数时,您没有向函数传递任何内容,因此“exit”是未定义的,并且测试失败
如果您将“exit”传递给函数,或者从函数声明中取出参数,它将起作用-可能。“read”函数是异步的,因此我不确定节点将如何运行。您已将“exit”声明为函数的参数,因此外部声明对函数内部的逻辑没有影响。调用函数时,您没有向函数传递任何内容,因此“exit”是未定义的,并且测试失败
如果您将“exit”传递给函数,或者从函数声明中取出参数,它将起作用-可能。“read”函数是异步的,所以我不确定节点将如何工作。调用该函数时,您没有通过exit。应该是:
OutsideLoop( exit );
在最后一行。调用函数时没有通过exit。应该是:
OutsideLoop( exit );
在最后一行。Pointy关于隐藏您声明的外部变量的参数是正确的。然而,最终会出现一个可怕的繁忙循环。Node.js是基于事件的;正确使用它的事件
function promptUser() {
read({prompt: "> "}, function(err, result) {
console.log();
console.log(result);
console.log("Type in more input or type 'exit' to close the program.");
if(result !== "exit") {
promptUser();
}
});
}
promptUser();
Pointy关于参数隐藏您声明的外部变量的说法是正确的。然而,最终会出现一个可怕的繁忙循环。Node.js是基于事件的;正确使用它的事件
function promptUser() {
read({prompt: "> "}, function(err, result) {
console.log();
console.log(result);
console.log("Type in more input or type 'exit' to close the program.");
if(result !== "exit") {
promptUser();
}
});
}
promptUser();
如果(!exit)exit=false,则可以说
代码>在外部循环中
函数位于代码的最顶端。那么您就不需要传递参数了。@PHPglue:不,这仍然是指相同的exit
。因为退出循环只有一个条件,所以在(exit!==true){do stuff}
时执行更简单。看起来我必须再次教您一些@minitech。当@Ber在没有参数的情况下调用OutsideLoop()
时,它是未定义的
,因此我的评论是正确的。这绝对不是您应该提示的方式。如果(!exit)exit=false,您可以说代码>在外部循环中
函数位于代码的最顶端。那么您就不需要传递参数了。@PHPglue:不,这仍然是指相同的exit
。因为退出循环只有一个条件,所以在(exit!==true){do stuff}
时执行更简单。看起来我必须再次教您一些@minitech。当@Ber在没有参数的情况下调用OutsideLoop()
时,它是未定义的
,因此我的评论是正确的。