最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何将函数的值传递给async.waterfall函数

运维笔记admin11浏览0评论

如何将函数的值传递给async.waterfall函数

如何将函数的值传递给async.waterfall函数

我的代码有问题。我想从Mysql表中选择并考虑结果,更改它并再次更新该表。问题是,代码执行此操作是异步的,它将无法正常工作(它首先执行所有SELECT,然后执行所有UPDATE)。所以我使用async.js来完成工作,但仍然没有工作。因为我无法将所选值传递给调用者回调。因此无法通过async.waterfall将其传递给下一个回调。有任何想法吗?

async.waterfall([

    function (callback) {

        queryBuilder.selectAgent(connection, id, (agent) => {
            // Here is the PROBLEM! I can't pass agent out of this
        });

        // Here agent will be undefined
        callback(null, agent);
    },

    function (agent, callback) {

        if (agent) {
            // Some change on agent and pass it to next callback
        }

        callback(null, agent);
    },

    function (agent, callback) {

        queryBuilder.updateAgent(connection, id, agent);

        callback(null);
    },

],

function (err) {
    if (err) throw err;

})
回答如下:

您需要更改updateAgent方法以检查先前的值并向其添加新数据或者您可以先检查任何特定项目的更新并收集它们以更新字段一次。

发布评论

评论列表(0)

  1. 暂无评论