Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 节点遍历(js遍历)模块:如何';中断';穿越_Node.js_Traversal - Fatal编程技术网

Node.js 节点遍历(js遍历)模块:如何';中断';穿越

Node.js 节点遍历(js遍历)模块:如何';中断';穿越,node.js,traversal,Node.js,Traversal,如何在nodejs遍历模块中中断/停止遍历 我正在遍历json,在特定条件下,我想停止遍历 遍历(请求主体).forEach(函数(xnode){ 日志信息(“检查节点:+xnode”); ... ... //如果检测到JSON威胁,则返回错误 if(Object.keys(err.length>0){ 返回next(新错误(JSON.stringify(err)); //遍历应该在此停止,但它将继续 //我需要明确地打破它吗? } }); 在调试期间,我观察到return语句将控制发送给调用(

如何在nodejs遍历模块中中断/停止遍历

我正在遍历json,在特定条件下,我想停止遍历

遍历(请求主体).forEach(函数(xnode){
日志信息(“检查节点:+xnode”);
...
...
//如果检测到JSON威胁,则返回错误
if(Object.keys(err.length>0){
返回next(新错误(JSON.stringify(err));
//遍历应该在此停止,但它将继续
//我需要明确地打破它吗?
}
});

在调试期间,我观察到return语句将控制发送给调用(connect)中间件,但遍历在后台继续。我在文档中没有找到任何中断/停止选项。发生错误后如何停止遍历


提前感谢您的输入。

您可以使用
.some
而不是
.forEach
。这将循环,但一旦返回
true
,它将停止循环

if (Object.keys(err).length > 0) {
    next(new Error(JSON.stringify(err));
    return true;
}
return false;

在遍历模块中有一个.stop()方法来停止遍历对象。尽管模块文档中未提及此方法

traverse(obj).forEach(function (x) {
    console.log("key: "+this.key+"\tValue: "+x+"\tLevel: "+this.level);
    if(this.key==='b'){
        console.log("Halting Traversal: "+this.key+" value: "+x);
        this.stop();
    }
 }

感谢您的回复,但是Traverse()没有.some()方法。