javascript - process.nextTick 中未定义回调

标签 javascript node.js

尝试递归调用同步函数来解析数组的元素;一旦到达数组的最后一个元素,就会调用回调。但是,当传递给 process.nextTick 时,回调被认为是未定义的,因为在与回调相同的范围内声明的另一个变量会打印正确的值。

任何人都可以解释一下我做错了什么吗?回调怎么可能是未定义的,而同一范围内的另一个变量可以正确访问。

someobject.prototype.launch = function (callback) {

    if (!this.config.children || this.config.children.length <= 0)
        throw new Error('No children found');
    var callCounter = 1;
    var _callback = function () {
        callback(true)
    };
    console.log(_callback); // prints [Function] as expected
    function create(i) {
        //some logic to process 
        //the 'i' element
        if (callCounter == stopAt) {
            var _callback = callback(true);
            //process.nextTick(_callback); //this too doesnt work as _callback is undefined
            process.nextTick(function () {
                console.log(callCounter + ' ' + _callback);
               // the callback is undefined where as callCounter holds the proper value. 
            });
        }else {
        //process.nextTick( (create.bind(this))(callCounter++));
        (create.bind(this))(callCounter++)
    }
     (create.bind(this))(0);
}

最佳答案

var _callback = callback(true); 

该字符串可以返回未定义的值。您确定回调(true)返回其他函数或值吗?删除它或评论。

未定义函数结果示例

var func_without_result = function(){};

console.log(func_without_result());

结果

> undefined

关于javascript - process.nextTick 中未定义回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23873111/

相关文章:

javascript - Sails.js 的模型是否具有像 Django 中的模型那样的反向引用功能?

javascript - 通过 ID 和类获取元素内的元素 - JavaScript

javascript - Angular:如何从单选按钮组获取数据并将其作为参数传递给方法?

javascript - 我正在尝试将数组映射到另一个映射函数中我的代码未同步运行

node.js - 上传图像的 Meteor 安全权限

node.js - Node-machine-id 包不工作

javascript - 新添加的元素 $.each 和 events

javascript - 在 Typescript( Angular )中将对 $state 和 $stateParams 的引用添加到 $rootScope

javascript - 第二个按钮显示警报但不会运行功能

node.js - 测试 Microsoft Bot Framework 异步回复