Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js-查找异步函数_Javascript_Node.js_Asynchronous - Fatal编程技术网

Javascript Node.js-查找异步函数

Javascript Node.js-查找异步函数,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我在Node.js中寻找一个模块,该模块将为数组中的每个项运行函数,但暂停执行数组中的下一项,直到为最后一项返回值 我让async.concatSeries()运行一系列请求函数 看起来像这样 var foo = [id,id,id]; function bar(){//do something then return value} async.concatSeries(foo, bar, function(err, result){//log result}); 我想以与数组相同的顺序返回所

我在Node.js中寻找一个模块,该模块将为数组中的每个项运行函数,但暂停执行数组中的下一项,直到为最后一项返回值

我让async.concatSeries()运行一系列请求函数

看起来像这样

var foo = [id,id,id];
function bar(){//do something then return value}
async.concatSeries(foo, bar, function(err, result){//log result});
我想以与数组相同的顺序返回所有这些。
任何帮助都会很好,谢谢

如果您暂停等待以前的结果,则您正在同步工作。只需使用
Array.map()


如果您暂停等待以前的结果,则表示您正在同步工作。只需使用
Array.map()


有时,按顺序运行任务或批处理任务以限制传出连接等可能是个好主意

最著名的图书馆是。使用它,您的代码将如下所示:

var async = require('async');

// Some array of data.
var ids = [0, 1, 2, 3, 4, 5];

// Async function applying to one element.
function getUser(id, callback) {
    // A call to a datastore for example.
    if (err) {
        return callback(err);
    }

    callback(null, user);
}

async.mapSeries(ids, getUser, function (err, users) {
    // You now have an error or an array of results. The array will be in the
    // same order as the ids.
});

您还可以使用
async.map
进行并行执行,也可以使用
async.mapLimit
进行并行执行,在任何给定时间使用的
id
数量有限。

有时最好按顺序运行任务,或者批处理任务以限制传出连接等

最著名的图书馆是。使用它,您的代码将如下所示:

var async = require('async');

// Some array of data.
var ids = [0, 1, 2, 3, 4, 5];

// Async function applying to one element.
function getUser(id, callback) {
    // A call to a datastore for example.
    if (err) {
        return callback(err);
    }

    callback(null, user);
}

async.mapSeries(ids, getUser, function (err, users) {
    // You now have an error or an array of results. The array will be in the
    // same order as the ids.
});

您还可以使用
async.map
进行并行执行,并使用
async.mapLimit
进行并行执行,在任何给定时间使用的
id

如果您希望它按顺序执行,它是一个“异步”函数吗?@grebneke,如下面对答案的评论中所述,顺序与同步不同。异步函数可以按顺序执行,而不是同步的,因为顺序跨越多个刻度。当您希望它按顺序执行时,“异步”函数是如何执行的?@grebneke,如下面对答案的注释所述,顺序与同步不同。异步函数可以按顺序执行,而不是同步的,因为顺序跨越多个标记。这是同步与顺序的混合。函数可以在多个刻度之间按顺序处理,这是不同步的。这太棒了!谢谢你的帮助。这是将同步与顺序混为一谈。函数可以在多个刻度之间按顺序处理,这是不同步的。这太棒了!谢谢你的帮助。