Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在NodeJS中使用相同参数在回调函数中调用父函数_Javascript_Node.js_Recursion_Callback - Fatal编程技术网

Javascript 在NodeJS中使用相同参数在回调函数中调用父函数

Javascript 在NodeJS中使用相同参数在回调函数中调用父函数,javascript,node.js,recursion,callback,Javascript,Node.js,Recursion,Callback,我有下面的功能 const generate_data = require('./helpers/generate_train_data'); const permutate_data = require('./helpers/permutate_data'); var COMPANY = 'test-company'; var INVOICES = ['invoice2.pdf','invoice4.pdf','invoice5.pdf']; generate_data.generate_

我有下面的功能

const generate_data = require('./helpers/generate_train_data');
const permutate_data = require('./helpers/permutate_data');

var COMPANY = 'test-company';
var INVOICES = ['invoice2.pdf','invoice4.pdf','invoice5.pdf'];

generate_data.generate_data(COMPANY, INVOICES,(check)=>{
    if(check){
        console.log('Success, training data created!');
    }
    else{
        //Call generate_data.generate_date again with SAME INPUT 
    }
});
generate_data.generate_data(COMPANY, INVOICES, (AND HERE THE SAME CALLBACK...)
基本上,我在等待generate_date模块的返回falue,如果该值为true,我只是一个简单的打印输出,但是如果该值为false,我需要再次调用相同的函数

const generate_data = require('./helpers/generate_train_data');
const permutate_data = require('./helpers/permutate_data');

var COMPANY = 'test-company';
var INVOICES = ['invoice2.pdf','invoice4.pdf','invoice5.pdf'];

generate_data.generate_data(COMPANY, INVOICES,(check)=>{
    if(check){
        console.log('Success, training data created!');
    }
    else{
        //Call generate_data.generate_date again with SAME INPUT 
    }
});
generate_data.generate_data(COMPANY, INVOICES, (AND HERE THE SAME CALLBACK...)

我尝试使用generate_data.generate_data.call(arguments.callee.caller),但是我得到了arguments.callee.caller的未定义值。

您可以通过将回调存储在单独的函数中来实现这一点,所以您可以在函数中引用它

const customCallback = (check) => {
    if (check) {
        console.log('Success, training data created!');
    } else {
        //Call generate_data.generate_date again with SAME INPUT 
        generate_data.generate_data(COMPANY, INVOICES, customCallback);
    }
}

generate_data.generate_data(COMPANY, INVOICES, customCallback);

谢谢,我甚至没想过要分开它,它今天让我很困扰。。。干杯。@KristijanStefanoski很乐意帮忙。另外,如果答案解决了您的问题,请不要忘记将其标记为正确答案。)