Tag: while loop

如何使用promise来模拟同步循环

我无法让诺言工作(我认为他们应该这样做)。 以下代码几乎立即执行。 即。 在将每个号码logging到控制台之前不等待4秒钟。 function do_nothing(a) { return new Promise(function(accept, reject){ console.log(a) setTimeout(accept(parseInt(a)+1), 4000); }); } function do_til_finish(i) { if (parseInt(i) < 5) { do_nothing(i) .then(j => do_til_finish(j)) .catch(j =>{}) } else { console.log('All done'); } } do_til_finish(0); 的jsfiddle 我错过了什么? 顺便说一句。 我不想asynchronous运行循环,因为语句将使用所有内存并冻结服务器。 这不是一个networking服务器,所以我不需要担心令人沮丧的用户。 提前致谢

Node.js文件系统 – 保存唯一的文件名

我正在使用节点文件系统保存上传的图像,使用while循环来检查现有的文件名,递增++,直到有一个唯一的文件名。 代码不工作,得到SyntaxError: Illegal break statement错误的放置我的break; 行,以及while循环永远不会正确地读取循环内的fs.exists()函数。 我在这里做了什么完全错误的逻辑? 有一个更简单的方法来确保fs.writeFile()不覆盖现有的文件? 码: var fileExist = true; var fileName = req.files.files[0].name.substr(0, req.files.files[0].name.lastIndexOf('.')) || req.files.files[0].name; var fileType = req.files.files[0].name.split('.').pop(); var fileNumber = 1; while (fileExist) { fileNumber_str = fileNumber.toString(); var current = fileName + fileNumber_str + '.' + fileType; fs.exists( __dirname + "/uploads/" + current, function(exists){ if (exists) { fileNumber++; […]