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

时间:2019-04-21 11:37:23

标签: 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_data(COMPANY, INVOICES,(check)=>{
    if(check){
        console.log('Success, training data created!');
    }
    else{
        //Call generate_data.generate_date again with SAME INPUT 
    }
});

基本上,我正在等待generate_date模块的返回结果,如果该值为true,则只是一个简单的打印输出,但是如果该值为false,则需要再次调用同一函数

generate_data.generate_data(COMPANY, INVOICES, (AND HERE THE SAME CALLBACK...)

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

1 个答案:

答案 0 :(得分:1)

您可以通过将回调存储在单独的函数中来实现,因此您可以在内部引用它

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);