如何使用async.series nodejs?

时间:2017-04-04 18:28:17

标签: javascript node.js async.js

我有一些问题。我需要将数据库中的所有数据保存到变量?? Enumerable.Empty<Inventory>()中,但我还没有得到它。如果有人能帮助我,那就太酷了。

我使用async.js。

感谢。

result

2 个答案:

答案 0 :(得分:1)

您应该使用

mysqlConnection.query(query, done);

当您不对数据做任何其他事情时。然后使用

function endFunction(err, result) {
    console.log(result);
}

并且您的数据将在该异步回调中可用。

答案 1 :(得分:-1)

如果你查看async.series()的文档,它说该方法有2个参数:一个用于任务的数组和一个可选的回调函数,用于完成所有任务或出现错误时 - 你确实有。

每个任务函数都有一个参数(在您的情况下为done),这是一个在完成任务或完成错误时必须调用的函数。在第一种情况下,您可以在第一个参数中传递null并在第二个参数中传递任何其他信息时调用该函数,例如done(null, data)。在第二种情况下,您可以在传递错误时调用该函数,例如done(err)

function getContent() {   
    async.series([
        getDb
    ], endFunction);

    function getDb(done) {
        var query = "SELECT title , launch_year FROM content WHERE content_genre_id=1 && content_type_id!=2 LIMIT 2";
        mysqlConnection.query(query, function (err, data) {
            // if there is an error, send back the error and stop
            if (err) return done(err);
            console.log("getting data", data);
            // otherwise, send back the data
            done(null, data);
        });
    }

    function endFunction (err, results) {
        // once all tasks are complete, this function will be called and will have either an error or each result from each task
        console.log('err', err);
        console.log('results', results);
    }
}