How to exit callback loop in javascript
我在test.js文件中有一个简单的代码片段:
1 2 3 | [1, 2, 3, 4].forEach(function(e) { console.log(e); }); |
每当我在终端中运行node test.js,我就会得到输出
1 2 3 4 5 | 1 2 3 4 | |
但这个计划从来没有真正退出过。我被要求手动结束它。这看起来很琐碎,但我无法找到一个合适的方法退出终端的便签。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | UPDATE 1: var mongoose = require('mongoose'); var User = require('../models/users/user'); var UserProfile = require('../models/users/profile'); var config = require('../config'); var logger = require('../libraries/logger'); logger = logger.createLogger(config); var connectionString = config.database.adapter + '://' + config.database.host + ':' + config.database.port + '/' + config.database.name; mongoose.connect(connectionString, {server: {auto_reconnect: true }}); User.find(function(error, users) { users.forEach(function(user) { var data = { email: user.local.email || user.google.email || user.facebook.email || '' }; UserProfile.update({user_id: user._id}, {$set: data}, function (error, record) { if (error) { logger.error(error); } else { logger.info(data); } }); }); |
上面是我正在努力工作的代码。即使不处理脚本,添加
1 | UPDATE 2: |
我想出了解决办法。在上面的情况下,脚本没有退出,因为到MongoDB数据库的连接没有关闭。
在处理完成后,我使用了一个脏的hack来关闭连接,方法是在行的末尾添加
如果这是一个nodejs问题,那么您可以使用