簡體   English   中英

return a(function())是什么意思?

[英]What meaning is return a(function () )?

我研究了簡單的異步JavaScript代碼,但受返回值(function())困擾。 我不明白

如何操作此返回值(函數())?

function _async(func) {
    return function () {
        arguments[arguments.length++] = function (result) {
            _callback(result);
        };

        (function wait(args){
            for (var i = 0; i < args.length; i++) {
                if (args[i] && args[i].name == '_async_cb_receiver')
                    return args[i](function (arg) {
                        args[i] = arg; wait(args);
                    })}
            func.apply(null, args);

        })(arguments);

        var _callback;

        function _async_cb_receiver(callback) {
            _callback = callback;
        }

        return _async_cb_receiver;
    };
}

return args[i](function (arg) {
    args[i] = arg; wait(args);
})

我不明白這部分。 wait(args)僅返回args[i] ,但是會出現括號並執行匿名函數。 此函數如何處理args[i]以及arg哪些參數?

args是一個函數數組。 因此args[i]是這些函數之一,而args[i](something)則以something作為參數調用該函數。

在這種情況下, something功能是另一個功能。 此函數用其自己的參數替換args[i] ,然后遞歸調用wait(args)

這段代碼非常復雜,所以我不確定它的整體功能。 我懷疑它的工作方式與Promise的工作方式類似,但是是在將它們添加到語言之前編寫的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM