执行recursion函数并保存callback
我有以下代码。 它运行一个简单的function,需要运行相同的function。 (recursion)
var Skit = function(callback) { validSkit(Math.random(),function(skit,data){ // Ajax callback if (skit == true) callback(data); // Works if skit is found else if (skit == false) Skit(callback); // Call Skit again [not working] }); }(function(skit){ console.log("Valid skit found!"); });
我得到的Skit is undefined!
我知道我可以做这个真正简单的function Skit()..
调用。 但这不是我的要求。 这可能吗?
你应该在这里使用一个命名函数expression式 :
(function Skit(callback) { validSkit(Math.random(),function(skit,data){ // Ajax callback if (skit == true) callback(data); // Works if skit is found else if (skit == false) Skit(callback); // Call Skit again [not working] }); })(function(skit){ console.log("Valid skit found!"); });
请注意, Skit
名称不会在外部作用域中泄漏,并且可用于堆栈跟踪中的debugging。
在这种情况下,var Skit
variables是返回的值。
(function (callback) { ... })(function () {console.log('I am argument function')});
如果你从它返回smth(在validSkit执行之后,对于exampe,或之前,无论),那么Skit的值将是返回值。 至于return语句不存在,它默认返回undefined。
所以你首先需要启动函数而不用调用它,然后用它的名字来调用它:
var Skit = function(callback) { validSkit(Math.random(),function(skit,data){ // Ajax callback if (skit == true) callback(data); // Works if skit is found else if (skit == false) Skit(callback); // Call Skit again [not working] }); }; Skit(function(skit){ console.log("Valid skit found!"); });
- 如何在nodejs中的集群之间共享可变数据?
- 摩卡testing:“TypeError:undefined不是一个函数”在Test.serverAddress
- javascript(node.js)将url哈希转换为带有参数的url
- Node.js&Express会话问题
- Node-firebird按顺序select
- Socketio:错误:单独的代理U + D83D不是一个标量值
- 问题在browserify的brfs插件
- request.body vs request.params vs request.query
- 以RFC 2822格式parsingdatestring(在HTTP头字段“last-modified”中find)