Tag: node async

有没有可能在node addon中注册eventloop?

AtExit钩子是在Node.js事件循环结束之后但在JavaScript VM终止并且Node.jsclosures之前调用的函数。 AtExit挂钩使用node :: AtExit API进行注册。 同样有什么办法可以在node addon中注册eventloop?

node.js如何在从stream中导入数据库后同步最终callback

这听起来像一个非常典型的用例如Q或async库,但我真的不知道什么是最好的方式来做到这一点。 我想用150行(使用node-csv )导入CSV文件,并为每行创build一个mongo文档。 然而,streamparsing看起来比“db插入”更快,所以我遇到了callback被调用得太早的问题。 // importtest.mocha.js […] importer.loadFromCsv (url, function(result) { result.length.should.be.equal (150); // nope, it's always around 41 } // importer.js function loadFromCsv (url, callback){ csv().from.stream(url) .on ('record', function(record, index){ new Row({data: record}).save(function() { console.log ('saved a row to db'); }); }) .on ('end', function() { callback (Row.find({})); // E parser finished, but probably […]

Youtube API在node.js Express中使用asynchronous来处理多个相关请求

在我处理数据的自定义模块中,我发送了2个请求,第一个从我的播放列表中获取video列表,第二个使用我从第一个结果获得的videoID发送另一个请求。 因为第二个请求依赖于第一个请求,所以我使用了asynchronous模块的waterfall方法。 要检查这是正常工作,我logging第一个请求中的第二个函数的结果,但网页没有运行,并没有在控制台中返回。 这里有什么问题吗? var data = function(callback) { var request = require('request'), async = require('async'); async.waterfall([ function getVideo (getVideoCallback) { var url = "https://www.googleapis.com/youtube/v3/playlistItems"; var properties = { part: 'snippet, contentDetails', playlistId: 'xxx', key: 'xxx', maxResults: 50 } request({ url:url, qs:properties}, function(err, response, body) { if(err) { console.log(err); return; } body = JSON.parse(body); getVideo(body, […]

延迟响应,直到所有查询完成

我的数据库包含项目和阶段。 项目可以有多个阶段。 模型类似于这些: 相: var phaseSchema = new mongoose.Schema({ project: { type: mongoose.Schema.Types.ObjectId, ref: 'Project' } }); 项目: var projectSchema = new mongoose.Schema({ name : { type: String } }); 目前我正在使用以下方法来检索每个项目的阶段: var calls = []; var projects = _.each(projects, function (p) { calls.push(function (callback) { req.app.db.models.Phase.find({ project: p._id }, function (err, doc) { if (err) […]

没有声明“distinct”的值

我正在尝试为我的Mongoose模型添加一个新的静态方法。 该方法应接受几个字段的名称,并返回一个对象与每个这些字段的不同值。 var mongoose = require('Mongoose'); var Schema = mongoose.Schema; var mySchema = new Schema({Year: Number, Segment: String, Sector: String, Name: String, Group: String, Value: Number}); mySchema.statics.manyDistinct = function(err, fields, callback) { var out = {}; for (var i = 0; i < fields.length; i++) { this.distinct(fields[i], function(err, dat) { if (err) { return err; […]

在webdriverio中执行asynchronousfunction

我坚持这个问题,因为我是新的webdriverio 。 我的要求是我有一个页面,其中包含项目列表(如button等),我需要逐一点击每个项目。 但是,点击每个项目后,它将redirect到另一个部分/页面。 还有一个“closuresbutton”返回第一页(其中包含项目列表)。 我的实际需求是webdriverclient必须点击button,它将转到受尊敬的页面,然后单击“closuresbutton”并回滚,然后单击第一个button,它将继续,直到所有的button完成(我在这里使用'asynchronous'模块) 守则在这里.. var webdriverio = require('webdriverio'); var async = require("async"); var options = { desiredCapabilities: { browserName: 'chrome' } }; var client = webdriverio.remote(options); client .init() .url('pagelink') .elements('li', function (err, res) { if (err) { console.log(err); } else { var i = res.value.length; async.each(res.value, function (oneResult, callback) { console.log('i value […]