[英]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.