Node.js 在while循环NODEJS中停止异步进程
如何在提供的代码中循环时停止?什么代码应该处于“停止”状态才能在循环时停止 当监听器给出另一个状态时,循环仍在运行常量状态值保持“开始”。当侦听器提供新状态时,它不会更改Node.js 在while循环NODEJS中停止异步进程,node.js,express,asynchronous,events,Node.js,Express,Asynchronous,Events,如何在提供的代码中循环时停止?什么代码应该处于“停止”状态才能在循环时停止 当监听器给出另一个状态时,循环仍在运行常量状态值保持“开始”。当侦听器提供新状态时,它不会更改 constructor(){ events.on("imdb-scraper-engine", ({status}) =>{ this.scraper(status); }); this.scraper('INIT'); } async scraper(status){ whi
constructor(){
events.on("imdb-scraper-engine", ({status}) =>{
this.scraper(status);
});
this.scraper('INIT');
}
async scraper(status){
while(status == 'START'){
await axios.get('https://jsonplaceholder.typicode.com/posts').then((result)=>{
console.log(result);
});
}
if((status == 'STOP')){console.log('Process was stopped');}
if((status == 'INIT')){console.log('Engine Initialized')}
}
--eidt发现我总是在构造函数中调用this.scraper启动新进程。但是仍然想知道如何在循环时停止。基于您可能试图实现的目标,我可以为您设计一个想法 但这可能行不通
根据你可能试图实现的目标,我可以为你设计一个想法 但这可能行不通
您能检查while循环下的状态吗?请参阅editconts status values keeps“START”。当侦听器提供新状态时,它不会改变。好吧,兄弟,这意味着while循环没有问题,对吗?如何更新您的值“状态”?在构造函数中有一个事件。关于谁lisens并提供新状态,您可以在while循环下检查状态吗?请参阅editconst状态值保持“开始”。当侦听器提供新状态时,它不会改变。好吧,兄弟,这意味着while循环没有问题,对吗?如何更新值“STATUS”?在构造函数中有一个event.on谁先声明并给出新状态?为什么要使用while循环?当状态为“开始”时,while循环将为无限循环。此外,在每个事件触发后,您都会一次又一次地调用该函数,因此新事件对以前的函数没有影响。首先,为什么要使用while循环?当状态为“开始”时,while循环将为无限循环。此外,在每个事件触发后,您都会一次又一次地调用该函数,因此新事件对以前的函数没有影响。
Try it:
constructor(){
events.on("imdb-scraper-engine", ({status}) =>{
this.scraper(status);
});
this.scraper('INIT');
}
async scraper(status){
console.log(status)
while(status == 'START' && status != 'STOP'){
console.log(status)
await axios.get('https://jsonplaceholder.typicode.com/posts').then((result)=>{
console.log(result);
});
}
if((status == 'STOP')){console.log('Process was stopped');}
if((status == 'INIT')){console.log('Engine Initialized')}
}
theLoop; //its a variable
constructor(){
this.listenEvent();
this.scraper('INIT');
}
function listenEvent(){
events.on("imdb-scraper-engine", ({status}) =>{
if(status=='STOP'){
clearTimeout(this.theLoop);
}
this.scrapper(status);
});
}
function startWhileLoop() {
this.theLoop = setTimeout(async function(){
await axios.get('https://jsonplaceholder.typicode.com/posts').then((result)=>{
console.log(result);
});
}, 0);
}
scraper(status){
while(status == 'START'){
startWhileLoop();
}
if((status == 'STOP')){console.log('Process was stopped');}
if((status == 'INIT')){console.log('Engine Initialized')}
}