Articles of async.js

使用async.parallel时出错

我在node.js中使用asynchronous时遇到了绑定错误。 有问题的代码: var async = require('async'); var fs = require('fs'); var path = require('path'); function ignoreWhiteSpaceJudge(outDesired, outGenerated){ var contentOutDesired = ""; var contentOutGenerated = ""; async.parallel([ function(outDesired, callback) { console.log(outDesired); fs.readFile(outDesired, 'utf8',function(error, data) { if (error) { return callback(error); } else { contentOutDesired = data; return callback(); } }); }, function(outGenerated, callback) { fs.readFile(outGenerated, 'utf8', […]

通过node.js使用async.js

Visit.js – 注意folloup.id引用0或“n”访问(如树) var visitSchema = new Schema({ code : {type: String, trim: true, required: false, default: ""}, Client : { id: {type: Schema.Types.ObjectId, ref: 'Client'}, }, attendant : [{ name : {type: String, trim: true, required: false, default: ""}, }], followup : [{ id : {type: Schema.Types.ObjectId, ref: 'Visit'} }], }); Client.js var clientSchema […]

在node.js中依次运行多个asynchronous函数

我是新来javascript还node.js环境。 回电很难。 因为当我有很多程序连接在一起,很难写,它会变得非常讨厌。 所以,我谷歌的答案后,我find了asynchronous工具,但它仍然运行,它可以执行代码块通过使用callback。 例如,f1 – > f2 – > f3 … 然而,我们总是有一个延迟的服务器和我的电脑。 那么如果我做了一些像创build桶一样的东西,然后打印我有多less。 它会打印出原来的桶数不是我添加一个之后。 像删除桶相同的情况….可以上帝帮助我 谢谢… function bucketSerialTesting(s3) { async.series([ function f1(callback) { settingBucket ('testjsbucket2',s3); callback('1'); } , function f2(callback) { settingBucket('testjsbucket3', s3); callback('2'); } , function f3(callback) { listBucket(s3); callback('3'); } , function f4(callback) { deleteBucket('testjsbucket2', s3); callback('4'); } , function f5(callback) { […]

如何组织一个async.waterfall调用循环

如何组织一个async.waterfall调用循环, 以便每次迭代只在前一个迭代完成之后才开始 。 到目前为止,我有以下代码: var hasMoreData = true; async.whilst(function () { // * has more data? return hasMoreData; }, function processData(callback1) { async.waterfall([ function readDataFromSource(callback2) { // * read data readData(function readFinished(data, hasMore) { // * got data hasMoreData = hasMore; callback2(null, data); }); }, function writeDataToDest(data, callback2) { // * write data writeData(data, function […]

node.js嵌套async.eachSeries

我刚刚进入节点,并结束了新的async.js。 我不确定我想做的事情是可行的(猜测是这样),还是我的做法是正确的(猜测不是)。 这是事情: 这个代码是pipe理一些instagram数据,所以我会根据代码实际需要做的事情来解释一切,以便更容易理解。 连接到mongoDB,得到一些Instagram帐户ID(完成) 为每个ID我想获得拉斯维加斯10个职位(我已经保存在我的数据库中)。 对于每个帐户的10个项目,我需要获得(评论+喜欢)的总和,并将该值与第一个eachSeries调用的out代码相比较。 router.get('/users_all', function(req, res) { User.find().sort({'counts.followed_by': 'descending'}).exec(function(err, users) { async.eachSeries(users, function(item, outerCallback) { Media.find({'userId': item.user_id}).exec(function(err, medias) { var count = 0; async.eachSeries(medias, function(item, outerCallback2) { count += item.comments_count + item.likes_count; }); }); item.totalAmount = count; }); res.json(users); }); } 我只是没有设置callback每个eachSeries,因为我不知道把它们放在哪里,我认为我的代码更容易理解这种方式。 如果需要更多关于代码请求的澄清。 谢谢你的帮助。

节点asynchronous – 工作asynchronous方法在async.parallel内返回undefined

基本上我有一个方法从一个API获取值和工作,但在async.parallel列出的结果都是未定义的。 这里的方法是: function getNumberOfSharesFromFacebookApi(url ,callback) { request(facebookApiUrl + url + '&format=json', function (error, response, body) { let res = 0; if (!error && response.statusCode == 200) { try { res = JSON.parse(body)[0]['total_count']; } catch(err) { } } callback(res); }); } 这是asynchronous调用: async.parallel ([ callback => { getNumberOfSharesFromFacebookApi(urlsToTest[0], callback); }, callback => { getNumberOfSharesFromFacebookApi(urlsToTest[1], callback); }, […]

Async.js系列和node-mysql查询不能得到行

我目前正在尝试使用async.js系列控制streamfunction来运行一组MySQL查询。 但我不断收到以下错误: throw err; // Rethrow non-MySQL errors ^ TypeError: Cannot read property 'status' of undefined 我已经在async.series之外testing了单独的函数中的查询,并且它们都很好,并将数据还给我,我可以认为这个错误的唯一原因是由于asynchronous性质,因此它当时没有数据当我logging我得到的行时的错误EG: [] [] [] 以下是asynchronousfunction: function SQLuserDataAsync() { connection.getConnection(function (err, connection) { async.series([ function (callback) { connection.query('SELECT status FROM users WHERE name= ?;', [userval], function (err, rows) { if (rows[0]['status']) { console.log("Account Status: " + accountval); } else { […]

使用asynchronous处理高地stream块

我正在使用highland.js来处理文件,使用stream来读取两个分隔符之间的内容。 我还使用async.js按顺序运行一系列http请求。 理想情况下,我想将来自高地的输出x作为第一个函数传递给async系列(链),以便为从stream中提取的每个块执行HTTP请求。 这可能吗? 如果是这样,这怎么能实现呢? var async = require('async'); var _ = require('highland'); _(fs.createReadStream(files[0], { encoding: 'utf8' })) .splitBy('—–BEGIN—–\n') .splitBy('\n—–END—–\n') .filter(chunk => chunk !== '') .each(function (x) { }).done(function () { async.series([ function(callback) { setTimeout(function() { console.log('Task 1'); callback(null, 1); }, 300); }, function(callback) { setTimeout(function() { console.log('Task 2'); callback(null, 2); }, 200); }, ], […]

asynchronous瀑布不正确保存与mongoose

这是我第一次使用asynchronous,虽然我已经search了networking,并尝试了系列和瀑布方法,我的结果是一样的。 我觉得我很接近这个工作正确,但不能得到它的工作100%。 我试图创build一个基于时间的testing,并testing从前端发送的问题参数。主要问题是最后一个创buildtesting的方法发生在search问题的中间方法之前,有任何,然后把它放在一个对象的数组。 一旦完成,testing正在创build,没有任何问题,但它确实节省了第一个function的时间。 最初(在尝试asynchronous之前)我在2秒的setTimeout中包装了“新的采访testing”方法,这工作得很好,但我知道有一个更好,更有效的方法来做到这一点。 exports.create = function(req) { console.log(req.body); var testTime = 0; var timer = req.body.timeValue; var testQuestions = req.body.category; var finalQuestions = []; async.waterfall([ function(callback) { **add total time into one value to be saved in the test** for (var i = 0; i < timer.length; i++) { if (timer[i] !== '') […]

nodejs Async.each嵌套循环混淆

我想有两个嵌套for循环 async.each(ListA, function(itemA,callback1){ //process itemA async.each(itemA.Children, function(itemAChild,callback1){ //process itemAChild callback1(); }), function(err){ console.log("InnerLoopFinished") } callback(); }),function(err){ console.log("OuterLoopFinished") } console.log("Process Finished") 现在我期望根据列表大小和输出像{InnerLoopF​​inished OuterLoopF​​inished} 过程finsished Bt我得到的是Process首先完成,InnerLoop和Outerloop消息取决于循环的大小。 我在两个循环中处理数据,所以当控制去打印“最终处理”消息,我希望我所有的数据被填充到一个对象之前,并发送它作为一个响应,而不是在这里实现 我认为不清楚工作async.each的想法可以帮助我达到预期的输出