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