Articles of async.js

如果函数的个数不知道,如何在asynchronous瀑布内迭代

我有一个节点js函数,它给了我数组的ID,使用这些ID我不得不从我的永久存储调用函数,每个函数将处理的值传递给其他,为此,我正在使用瀑布。 我需要将一个函数的值传递给另一个函数。 我正在使用它 var utilArray = utilityFunction(); var arrayofFunctions = []; for (var index = 0; index < utilArray.length; index++) { var functionToInsert = null; if (index == 0) { functionToInsert = function(callback) { id = testArray[index] //here index is set to length of utilArray when this is proccessed //function body callback(null, arg1); } } […]

错误:callback已被调用 – asynchronousnode.js oracledb

嗨我收到此错误时,查询返回0结果后筛选。 我怎么去解决这个问题? 这是我的代码。 > router.post('/report/', jsonParser, function (req, res) { var data = req.body, filteredID = data.filteredID, startRow = data.startRow, numRows = data.numRows, sortCol = data.sortCol, sortDir = data.sortDir; var countQuery = 'SELECT COUNT(*) ' + 'FROM this_view ' ;+ var query = 'SELECT * + 'FROM this_view ' ; var seg, orderBy, offset; if(filteredID […]

当使用瀑布方法时,async.js返回上一个值

所有。 我使用asyncjs的waterflow方法最后返回res值,但下面的代码是返回未定义的值。 var async = require("async"); User.findBy = function(name,password){ async.waterfall([ function fetch(callback){ db.lrange("users",0,-1,function(err,users){ users.forEach(function(item){ var u = JSON.parse(item); if ((u.name == name) && (u.password == password)){ console.log(u); callback(null,u); return; } }); }); callback(null); } ],function end(err,res){ setTimeout(function(){ // I want to return res value at last. return u; },0); }); }; app.js // but it […]

使用node.js +asynchronous模块从同步callback创build同步循环

stream行的node.js模块asynchronous包括集合和控制stream程的function,其中一些版本可以并行或串行操作。 但是其中我无法find构build一个串联循环的方法。 我试图做同样的这个伪代码: forever { l = getline(); if (l === undefined) { break; } else { doStuff(l); } } 如果我想所有调用getLine()并行调用,我可以使用async.whilst 。 如果我想迭代一个数组而不是像for或while循环那样使用async.eachSeries 。 我能用什么来获得控制stream中的series行为而不是集合迭代?

而与JavaScript循环

我正在探索node.jsasynchronous库来实现node.js中的游标( https://dev.twitter.com/docs/misc/cursoring )。 whilst看起来像我正在寻找的function,但我的情况有点不同。 每次我发出一个GET请求,我必须等待得到一个响应,然后更改光标值。 在async文档中,这是给出的例子 var count = 0; async.whilst( function () { return count < 5; }, function (callback) { count++; setTimeout(callback, 1000); }, function (err) { // 5 seconds have passed } ); 我试图做一些像它的实现推特游标导航,但它似乎并没有工作: async.whilst( function(){return cursor != 0}, function(callback){ oa.get( 'https://api.twitter.com/1.1/friends/list.json?cursor=' + cursor + '&skip_status=true&include_user_entities=false' ,user.token //test user token ,user.tokenSecret //test […]

asynchronous模块.map的奇怪行为

exports.fakeAccounts = function (Account, callback) { async.map([{ username: 'Jehoon', provider: 'farcebook' }, { username: 'C3P0', provider: 'farcebook' }], function (opts, cb) { Account.upsert(opts, cb); }, callback); }; 工作正常,但 exports.fakeAccounts = function (Account, callback) { async.map([{ username: 'Jehoon', provider: 'farcebook' }, { username: 'C3P0', provider: 'farcebook' }], Account.upsert, callback); }; 抛出一个错误,说帐户是未定义的。 我会认为,因为Account.upsert采用了相同的参数,它将工作。 我已经解决了,但我想知道我在这里失踪。

Node.JS中的ASYNC

我对Node.JS和callback中的asynchronous是新鲜的。 你能不能让我知道这是否是一个asynchronous调用的正确方法? function myFunc(schema) { async.each(Object.keys(schema), function(variable) { for (item in schema[variable]) { for (field in schema[variable][item]) { // Some operations go here } createDB(item, schema[variable][item]); } }); } function CreateDB(name, new_items) { ddb.createTable(selected_field.name, {hash: ['id', ddb.schemaTypes().number], range: ['time', ddb.schemaTypes().string], AttributeDefinitions: new_items }, {read: 1, write: 1}, function(err, details) { console.log("The DB is now created!"); […]

async.series函数没有完成

我正面临一个奇怪的问题与async.js 。 我正在解释整个场景。 我在数据库中有两个表。 让一个是5行,另一个是2840行的Y 由于我的项目在sails.js我使用waterline作为ORM。 我在async.series运行三个函数。 第一个用于获取表X所有行,第二个用于获取表Y所有行。 在第三个函数中,我运行async.eachSeries遍历所有在第二个函数中获取的Y行,并调用一个外部的POST API。 所以整体stream程是, async.series([ function( callback1 ){ // Fetch all rows from `X` }, function( callback1 ){ // Fetch all rows from `Y` }, function( callback1 ){ async.eachSeries(allRowsOfY, function(item, callback2){ // Call an external POST api. }, function(err){ }); }, ], function( err ){ // Do something […]

async.each嵌套在async.waterfall中

我最近开始使用asynchronousAPI。 现在我的要求是在3个集合即字段,脚本和语句上执行连接。 字段可以有多个脚本,脚本可以有多个语句。 这是我迄今为止所尝试的:(用脚本joinFields集合) // Array to hold async tasks var asyncTasks = []; async.waterfall([ function(callback){ // fetches fields based on some Id and it returns 2 fields db.fields.find({entity_id: mongojs.ObjectId("54440a448bbbcbb4070131ab")}, function (err, fields) { console.log(JSON.stringify(fields, null, 2)); callback(null, fields); }) }, function(arg1, callback){ // arg1 now equals fields arg1.forEach(function(eachField){ asyncTasks.push(function(callback){ db.scripts.find({fieldId: eachField._id.valueOf()}, function(err, scripts) { […]

将范围保持在Async.js中

鉴于Coffeescript中的以下课程: class MyClass extends events.EventEmitter someObj: null # set somewhere during constructor someMethod: () -> async.parallel([ @task1, @task2, @task3, ], (err, results) -> doSomething() task1: (callback) -> @someObj.funnyMethod() # fails callback() ); 最后一行的@someObj.funnyMethod()调用失败: TypeError: Cannot read property 'funnyMethod' of undefined 显然, this是指callback中的上下文。 对于正常的callback,我已经学会了使用胖箭头操作符=>而不是瘦-> 。 用async.js(或者其他类似的库)处理这个干净的方法是什么?