Tag: while循环

每当从里面rest一下

你好,我必须从while循环中断开。 在while循环中我调用了一个asynchronous函数。 我必须检查,如果该asynchronous调用的输出中的某个字段是空的,那么我不得不中断,否则我将再次调用该asynchronous函数。 我试过这个: var options = { headers : { 'Fk-Affiliate-Id':'xxxxxxx' , 'Fk-Affiliate-Token' : 'xxxxxxxxxxxxxxxx' } }; var state = ['approved','tentative','cancelled','disapproved']; state.forEach(element => { options.url = 'https://affiliate-api.flipkart.net/affiliate/report/orders/detail/json?startDate='+startDate+'&endDate='+endDate+'&status='+element+'&offset=0'; loop : while(true){ // This is the async call request.get(options, (err, res, body) => { var data = JSON.parse(body); console.log(data); // I have to check whether next […]

如何在NodeJS中创build一个无限循环

我已经看到了关于无限循环JS的一堆答案,我认为这将有助于我的代码,但似乎并没有正常工作。 我有这个: var i = 0 while (true) { setTimeout(() => { i ++ console.log('Infinite Loop Test n:', i); }, 2000) } 我们的目标是在无限循环内每2秒钟得到一次日志,但是我似乎无法得到任何回报……我错在哪里? 在此先感谢您的帮助像往常一样!

while循环和callback返回不同的结果

我有一个while循环匹配一个条件来过滤来自MongoDB的数据。 但是,当我使用callback时,我只收到一个结果到console.log 。 如果我在while循环中使用console.log,我应该得到三个条目。 为什么只有一个数据使其callback? while(i–) { if (0 >= [friday, saturday, sunday].indexOf(results[i].selectedDate)) { theWeekend = results[i]; console.log(theWeekend); //returns three results (correct) } } callback(err, theWeekend) console.log(theWeekend); //returns one results (incorrect) 正确的数据 { _id: 56fffb5ceb76276c8f39e3f3, url: 'http://londonist.com/2015/11/where-to-eat-and-drink-in-balham', title: 'Where To Eat And Drink In… Balham | Londonist', selectedDate: Fri Apr 01 2016 01:00:00 GMT+0100 (BST), […]

NodeJS中有多个embedded式循环

我喜欢执行下面的代码…但是正如你所看到的那样 – 这将需要100亿个循环! 所以我想知道 – 你们会build议让它旋转得更快吗? 之所以这样做,是因为最内在的方法需要对一些历史数据进行一些复杂的计算 – 从数据库中获得大约700万行数据,是find给定参数af的最佳“设置”,其给出最佳结果… var a = 0.1; while(a <= 10) // 100 { var b = 0.1; while(b <= 10) // 100 { var c = 0.1; while(c <= 10) // 100 { var d = 0.1; while(d <= 10) // 100 { var e = 1; while(e <= […]

如何在Node.JS中编写一个asynchronouswhile循环

我正在编写一个node.js应用程序来帮助自动化我的一些家酿酒厂。 我正在使用的一个模块是一个PIDalgorithm来控制输出,使它们保持一定的设定值。 我目前正在通过一个while循环,但是我认为这个代码将被阻止。 任何帮助使这个更有效和asynchronous将不胜感激。 这是我的控制循环: device.prototype.pid_on = function(){ while(this.isOn){ this.pid.set_target(this.target); // make sure that the setpoint is current var output_power = this.pid.update(this.current_value); // gets the new output from the PID this.output.set_power(output_power); }; }; 为了便于阅读,我稍微改了一下,但基本上就是这样。 它只会循环,调整输出,然后反馈新的input值。 我希望循环继续运行,直到设备closures。 显然,我需要这个非阻塞,这样我可以继续控制其他设备,而PID正在运行。 目前,我只是调用相当于device.pid_on(); 在我的代码。 我有一个想法是使用一个空的callback,这将使这个非阻塞? device.prototype.pid_on(calback){ while (this.isOn){…}; callback(); }; //call later in code device.pid_on(function(){}); 感谢任何/所有的帮助!

async.whilst中的callback和错误是什么?

我试图使用async.whilst重新生成0和数组长度之间的随机数,直到此索引上的元素的长度大于指定的长度。 我想使用async.whis为此,但语法不完全清楚给我。 我想到做以下事情: var selectParagraph = function(paragraphs, callback){ var index = Math.floor(Math.random() * paragraphs.length async.whilst( function(){ return paragraphs[index].length < minParagraphLength; }, function(cb) { index = Math.floor(Math.random() * paragraphs.length); }, function(err) { console.log(paragraphs[index]); callback(err, paragraphs[index]); } } 但是,这是行不通的。 我想这是因为我没有在任何地方使用cb作为第二个函数,但是我不完全知道应该如何使用它。 更改索引后,我只是调用cb()吗? variableserr究竟包含什么?

非法break语句(Node.js)

尝试在Node.js和MongoDB中查找唯一标识,方法是创build一个查询MongoDB现有标识的while循环,直到find唯一值。 如果这个ID已经被使用了,那末一个数字就会增加,直到Mongo什么也没有返回。 除了break;之外,一切都在工作break; 声明何时find唯一的ID。 Node.js返回: SyntaxError: Illegal break statement 代码: db.collection('landmarks').findOne({'id':uniqueIDer}, function(err, data){ //if ID exists already if (data.id){ var uniqueNumber = 1; while (1) { var uniqueNum_string = uniqueNumber.toString(); var newUnique = data.id + uniqueNum_string; db.collection('landmarks').findOne({'id':newUnique}, function(err, data){ if (data.id){ uniqueNumber++; } else { saveLandmark(newUnique); break; } }); } } else { saveLandmark(uniqueIDer); } […]

node.js:while循环callback没有按预期工作

知道,虽然Node.js是asynchronous工作,写这样的事情: function sleep() { var stop = new Date().getTime(); while(new Date().getTime < stop + 15000) { ; } } sleep(); console.log("done"); …将调用sleep(),在while循环(15secs)期间阻塞服务器,然后将“完成”打印到控制台。 据我所知,这是因为Node.js只允许JavaScript的主线程访问,因此这个事情的孩子会停止进一步的执行。 所以我明白这个解决scheme是使用callback: function sleep(callback) { var stop = new Date().getTime(); while(new Date().getTime() < stop + 15000) { ; } callback(); } sleep(function() { console.log("done sleeping"); }); console.log("DONE"); 所以我认为这将打印“完成”,并在15秒后。 'done sleeping',因为sleep()函数被调用并被传递给一个callback函数的指针。 当这个函数正在工作(while循环)时,最后一行将被执行(print'done')。 15秒后,当sleep()函数完成时,它调用给定的callback函数,然后打印“完成睡眠”。 显然我在这里明白了一些错误,因为上述两种方式都阻止了。 […]