Tag: async.js

asynchronous队列,文件stream结束时如何知道两者何时完成

使用async.queue与文件stream时,我遇到一个小问题 我有一个场景,我的文件stream将完成 我将fileRead设置为true 然而队列将是空的并且已经被称为排水 这导致我的“完成”永远不会被调用 我的文件stream是“结束”和队列是空的后,说“结束队列”的正确方法是什么? var fs = require('fs') , util = require('util') , stream = require('stream') , es = require('event-stream'); var async = require('async'); var fileRead = false; var lineNr = 0; var q = async.queue(function(task, callback) { task(function(err, lineData){ responseLines.push(lineData); callback(); }); }, 5); var q.drain = function() { if(fileRead){ done(null, responseLines); […]

Async.js – 并行真的平行吗?

正如我迄今为止所理解的:Javascript是单线程的。 如果推迟某个过程的执行,则只需在该线程空闲时安排它(排队)以便运行。 但Async.js定义了两个方法: Async::parallel & Async::parallelLimit和我引用: 并行(任务,[callback]) 并行运行一组函数,而不必等到上一个函数完成。 如果任何函数将错误传递给它的callback函数 parallelLimit(任务,限制,[callback]) 与并行相同,只有在任何时候执行的最大“限制”任务才能并行执行任务。 就我对英语的理解而言,当你说:“并行执行任务”是指同时执行这些任务。 Async.js如何在单个线程中并行执行任务? 我错过了什么

将额外的parameter passing给asynchronous映射

async.map的签名是map(arr,iterator,callback)( https://github.com/caolan/async#map ) 我有一个var context //object ,我需要传递给迭代器。 我该怎么做呢 ?

node.jsasynchronous串行函数的参数

我需要做的代码如下: function taskFirst(k, v) { console.log(k, v); } function taskSecond(k, v) { console.log(k, v); } function run() { var g1 = "Something"; var g2 = "Something"; var g3 = "Something"; var g4 = "Something"; async.series( [ taskFirst(g1, g2), taskSecond(g3, g4) ], function(error, result){ } ); } 传递自定义variables和async.jscallback函数的正确方法是什么?

使用Node.js,Async和Formidable进行error handling

在下面的代码片段中,我想validation第一个asynchronous方法中的字段。 如果他们无效,我想立即返回一个错误给用户。 我怎么做? var form = new formidable.IncomingForm(); async1.series([ function (callback) { form.parse(req); form.on('field', function (name, val) { // Get the fields }); form.on('fileBegin', function (name, file) { if (file.name !== "") { file.path = __dirname + '/upload/' + file.name; } }); callback(); }, function (callback) { form.on('file', function (name, file) { try { // […]

Node.js – Async.js:并行执行是如何工作的?

我想知道async.js中的并行执行是如何工作的 async = require('async') async.parallel([ function(callback){ for (var i = 0; i < 1000000000; i++) /* Do nothing */; console.log("function: 1") }, function(callback){ console.log("function: 2") } ]); 在上面的例子中,我期望获得输出: function:2 function:1 但是,控制台抛出反向,发生了什么? 谢谢。