Articles of async.js

asynchronousnode.js数据stream混淆

感谢您的帮助…如何正确处理这个问题,挣扎大时间。 我现在在asynchronous,已经放弃了我的能力,妥善编写callback。 我有一个片段,在这里我传递一组随机数(eachrecord),并将它们传递给一个mongoose调用。 试图从我通过的多个查询中创build一个数据集。 我的问题是,不pipe我做了4个小时,“newarray”variables总是空的。 感谢您的帮助 – async.forEach(arLimit, function(eachrecord, callback){ newarray = new Array; var query = UGC_DB_Model.find({}).skip(eachrecord).limit(-1); query.execFind(function (err, data) { if (err) console.log(err); else { newarray.push(data); } }); callback(null, newarray); }, function(err, result) { if (err) return next(err); console.log("(it's empty): " + result); });

如何在node.js中asynchronous执行多个REST API请求?

我想要做的是做多个远程REST API请求,我希望每个请求都依次完成。 我读过,async.js是这样做的方式。 因为我不知道有多less次我要做这个请求,所以我使用了async.whilst() 。 这个想法是,我将停止请求,一旦API返回零职位。 这是我的代码到目前为止(为了testing的目的,我限制了循环运行5次)。 var request = require('request'); var async = require('async'); var APIKEY = 'api-key-here'; var i = 0; var continueWhilst = true; async.whilst( function test() { return continueWhilst; }, doThisEveryTime, function (err) { // Done } ); function doThisEveryTime(next) { reqURL = 'http://api.tumblr.com/v2/blog/testsite.com/posts/text?api_key=' + APIKEY + '&offset=' + i*20; request( […]

asynchronous与节点的JS

这个函数使用async.js库的进展是什么? var async = require('async'); var square = function (num, doneCallback) { console.log(num * num); // Nothing went wrong, so callback with a null error. return doneCallback(null); }; // Square each number in the array [1, 2, 3, 4] async.each([1, 2, 3, 4], square, function (err) { // Square has been called on each of […]

为什么瀑布和series / parallelLimit(1)之间的async.js不一致?

下面的代码工作正常: var fs = require('fs'); var async = require('async'); var addErrParm = function (err, done) {return function(exists) { done(err, exists); }} function testAsync() {var response = ''; function checkIfTheFileExists(done) { fs.exists('file.txt', addErrParm(null, done)); } function readTheFile(exists, done) { if (!exists) { done('notFound'); } else { fs.readFile('file.txt', 'utf8', done); } } function showTheFile(err) { if (err) […]

我可以指定如何处理asynchronousJavaScript库中的错误?

我正在尝试清理asynchronous函数的input。 具体来说,给定一个API的凭证列表,我试图通过向API发送一个testing请求并检查每一个的结果来筛选哪些是无效的。 我面临的问题是这样的:我想收集无效的关键到一个单一的列表。 我通常会使用async库来使用series函数按顺序执行请求。 但是,从文档: 如果系列中的任何函数将错误传递给其callback函数,则不会运行更多函数,并立即使用错误值调用callback函数。 这不是所需的行为:我想收集错误代替响应(或两者)。 这是可能的,使用这个库,而不改变我与API交互的方式?

有关node.js中的async.waterfall的问题

我很困惑如何使用async.waterfall方法来清理我的callback。 我有几个函数正在进行API调用,并通过callback从这些API调用返回结果。 我想把一个API调用的结果传给下一个。 我也希望将这些调用放在单独的函数中,而不是直接将它们粘贴到async.waterfall控制stream中(为了便于阅读)。 我不能完全弄清楚你是否可以调用一个具有callback的函数,并且在进入下一个函数之前等待callback函数。 另外,当API SDK需要callback时,是否将其命名为与async.waterfall中的callback名称相匹配(在本例中称为“callback”)? 我可能会混合很多东西在一起。 希望有人能帮我解开这个。 以下是我正在尝试做的部分代码片段… async.waterfall([ function(callback){ executeApiCallOne(); callback(null, res); }, function(resFromCallOne, callback){ executeApiCallTwo(resFromCallOne.id); callback(null, res); }], function (err, res) { if(err) { console.log('There was an error: ' + err); } else { console.log('All calls finished successfully: ' + res); } } ); //API call one var executeApiCallOne = function […]

node.js:蓝鸟替代async.whilst?

我想运行一个while循环,这取决于每次迭代更新的条件。 现在的挑战是每次迭代中的代码都是asynchronous的。 一种通过使用async.whilst()来实现这一点的方法。 不过,我正在试图寻找一个使用蓝鸟承诺的替代品。 有没有这样的替代品?

我如何dynamic使用for循环,将不同的参数推送到一个数组?

目前我正在尝试使用Node.JS并行运行具有不同参数的相同函数 为此,我使用Async.js,我正在努力尝试推/堆栈函数到一个数组。 问题是这些函数是用相同的参数执行的。 这是我的: var async = require("async"); var array = []; var x = [1,2,3,4]; // This portion of code works perfect and the arguments are passed perfectly // The results that i am getting are: [100, 200, 300, 400] array.push(function(callback){ callback(null,calculate(x[0]))}); array.push(function(callback){ callback(null,calculate(x[1]))}); array.push(function(callback){ callback(null,calculate(x[2]))}); array.push(function(callback){ callback(null,calculate(x[3]))}); // This portion of code does […]

我如何pipe理Node.jsasynchronousvariables作用域?

我有以下代码来填充我的testing数据库。 目标是将每个子文档之后的父文档保存到父文档中,以便对其进行引用。 function saveRecipe(ingredients, directions, recipe, done) { var ingredientSaveTasks = createSaveTasks(ingredients) var directionSaveTasks = createSaveTasks(directions) async.parallel([ (callback) => { async.series(ingredientSaveTasks, callback) }, (callback) => { async.series(directionSaveTasks, callback) } ], (err, results) => { recipe.ingredients = results[0] // The returned ids for each ingredient recipe.directions = results[1] // The returned ids for each direction recipe.save(done) […]

将parameter passing给async.js任务

我必须迭代给定的JSON对象,并为其中的每个对象创build一个任务。 给定的任务也需要来自这个JSON对象的信息,我想知道如何将这些信息传递给我的任务,以便它在执行时可用。 build立我的任务数组: var asyncScrapeTasks = []; var resources = JSON.parse(body); for(var i=0; i<resources.items.length; i++) { asyncScrapeTasks.push(function (callback) { console.log(resources.items[i].id); }); } 执行我的任务: async.parallelLimit(asyncScrapeTasks, 5, function() { callback(null, "Done"); }); 我的问题: 现在console.log(resources.items[i].id); 返回未定义,这对我来说是有道理的,因为索引i在执行函数的时候是不知道的,但是我不知道如何解决我的问题。