【问题标题】:Async.js waterfall (functions defined outside of the array)Async.js 瀑布(在数组之外定义的函数)
【发布时间】:2012-05-15 20:49:49
【问题描述】:

我是第一次使用 async.js,想将函数数组分离成单独的函数。我有:

工作代码

    async.waterfall([
        function(callback)
        {
            var querySuccess = function (tx, result)
            {
                callback(null, result.rows.item(0).EventImportTime || "");
            };

            var queryError = function (tx, e)
            {
                callback("Query Error")
            };

            database.open();
            database.query("SELECT EventImportTime FROM Contact WHERE Contact.Id = ?", [contactId], querySuccess, queryError);
        },
        function(lastImportTime, callback)
        {
            var url = "";
            url += 'MobileGetvents.aspx?';
            url += '&LastImportTime=';
            url +=  lastImportTime;
            url += '&Format=JSON';

            callback(null, url)
        },
    ],
    function(err, result)
    {
        if (err)
            console.log("Error Happened");
        else 
        {
            console.log(result);
            getJSON(result, callback, 

errorCallback)
            }
        })

我想要

async.waterfall([
            getLastImportTime(callback) ,
            buildUrl(lastImportTime, callback),
        ],
        //callback
);

但是当我运行这段代码时它总是返回

未捕获的 ReferenceError:未定义 lastImportTime

【问题讨论】:

    标签: javascript node.js asynchronous


    【解决方案1】:

    我会假设你想要这个:

    var getLastImportTime = function(callback) { };
    var buildUrl = function(lastImportTime, callback) { };
    
    async.waterfall([
                getLastImportTime,
                buildUrl,
            ],
            //callback
    );
    

    【讨论】:

    • 哈哈学习新东西真的会让你忽视显而易见的事情。
    • 如果你真的想学一些热门的东西,你应该看看jQuery的Deferred对象,最重要的是pipe方法,你可以实现和asych瀑布一样的东西。
    • 信不信由你,这就是这个 Async.js 的来源。我想使用延迟但无法弄清楚。所以我转向 Async.js
    • 这是一篇很棒的文章,我觉得非常有帮助并触发了我的“AHA”时刻:msdn.microsoft.com/en-us/magazine/gg723713.aspx
    猜你喜欢
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多