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