簡體   English   中英

未在process.nextTick中定義回調

[英]Callback undefined in process.nextTick

嘗試遞歸調用同步函數以解析數組的元素; 一旦到達數組的最后一個元素,則將調用回調。 但是,當將回調傳遞給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); 

該字符串可以返回未定義的值。 您確定callback(true)返回其他函數或值嗎? 刪除或評論。

未定義函數結果示例

var func_without_result = function(){};

console.log(func_without_result());

結果

> undefined

暫無
暫無

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

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