gpt4 book ai didi

node.js - 在nodejs中完成工作后gulp任务挂起

转载 作者:太空宇宙 更新时间:2023-11-04 00:45:17 24 4
gpt4 key购买 nike

我定义了一个简单的 gulp 任务,可以使用 gulp load 在终端中运行。目的是获取未设置 location 属性的用户数量。但是,在数字成功返回后,该进程卡在终端中,我需要 ctrl-c 来停止它。请注意,这不是异步调用,而是使用 mongoose 插件来访问数据库。

gulp.task('load', function () {
dbCall.getUserNumberWithoutLocation();
});

var getUserNumberWithoutLocation = function() {
var query = User.find({ 'location': null });
query.exec(function(err, users) {
for (var i = 0; i < users.length; i++) {
console.log(users[i].location);
}
console.log(users.length);
})
};

最佳答案

尽管在 gulp.task 完成后提示仍然没有返回(这可能是我的本地计算机问题),但我将代码放在这里。 callback 函数被传递到内部 getUserNumberWithoutLocation 函数,其中一旦 User.find 完成,就会调用它。

gulp.task('load', ['style'], function (callback) {
dbCall.getUserNumberWithoutLocation(callback);
});
exports.getUserNumberWithoutLocation = function(callback) {
var query = User.find({'location': null});
query.exec(function(err, users) {
console.log(users.length);
if (err) {
return callback(err);
}
callback();
});
};

关于node.js - 在nodejs中完成工作后gulp任务挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34994756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com