另一个函数中的Javascript返回函数

另一个函数中的Javascript返回函数,javascript,function,variables,return,Javascript,Function,Variables,Return,我有一个javascript,它是这样的 function one (var1, var2){ var var3= var1+var2; return var3; } function two( var4, var5){ var var6=var4*var5; return var6; } function three(var7, var8){ var9=var7/var8; return var9; } var first = one(2,

我有一个javascript,它是这样的

function one (var1, var2){
    var var3= var1+var2;
    return var3;
}

function two( var4, var5){
    var var6=var4*var5;
    return var6;
}

function three(var7, var8){
    var9=var7/var8;
    return var9;
}

var first = one(2, 4);

var second= two(first, 8);

var third= three(second, 9);
我希望所有的函数都是独立的,因为它们就像处理不同操作的模块一样。所以我不想使用回调,我已经尝试过了

$.ajax(first = one(2,4))
.then({second=two(first, 8)})
.then(three(second,9))
我也试过这个

$.ajax()
.then(function(first=one(2,4){
    return first;
})
.then(function(second=two(first,4){
    return second;
})
$.ajax({
    first:one(2,4),
    second:two(first,4),
    third:three(second,9),
})
.then(function(first=one(2,4){
    return first;
})
.then(function(second=two(first,4){
    return second;
})
我也试过这个

$.ajax()
.then(function(first=one(2,4){
    return first;
})
.then(function(second=two(first,4){
    return second;
})
$.ajax({
    first:one(2,4),
    second:two(first,4),
    third:three(second,9),
})
.then(function(first=one(2,4){
    return first;
})
.then(function(second=two(first,4){
    return second;
})
这听起来可能很有趣,但我甚至试过

var third= three(two(one(2, 4), 8), 9);
在许多其他方面。 所有这些函数都显示操作与第一个函数和其他函数一起进行,但它不会给出前一个函数的结果


这是对上述内容的更新。 修改

我不想在其他函数中使用promise,因为其他一些函数也会调用这些函数,它们不希望使用promise,而是一个有效的数据

function modifyData(details){
    for(var x=0 ;x<array.length;x++){
        //this would do a massive loop which would
        //return a json string that would be 
    }
 }


 function tableFunction(url, tableNameVar){
    //json fields
 var details=[];
 details[0] = 'name'; 
 details[1] = 'sex'; 
 details[2] = 'eye_color'; 
 details[3] = 'height'; 
 details[4] = 'body_built'; 
        var jsonData='';
        var main = "";
    $(document).ready(function(){ 
        $('#'+tableNameVar+'').dataTable({
            destroy: true,
            data: JSON.parse(extraFunctionProcess(modifyData(details),details)),
            columns:[
                     {title: "Name", data:"name"} ,
                     {title: "Gender", data:"sex"} ,
                     {title: "Eye color", data:"eye_color"} ,
                     {title: "Height", data:"height"} ,
                     {title: "Body built", data:"body_built"} 
            ]
        });
    });
}
这是可行的,但由于我所做的修改,它在我的浏览器控制台中出现了一个错误,即 extraFunctionProcess中未定义


我刚刚将代码缩短为我现在放在网上的代码。

我实际上已经找到了解决问题的方法。modifyData函数就是出现问题的函数。返回在另一个函数中。 以下各项

function modifyData(details){
    for(var x=0 ;x<array.length;x++){
        //this would do a massive loop which would
        //return a json string that would be inside a function
    }
 }


function modifyData(details){
    for(var x=0 ;x<array.length;x++){
         return functionName(callback to be done);
        //this would do a massive loop which would
        //return a json string that would be 
    }
 }
函数修改数据(详细信息){

对于(var x=0;x这个问题非常不清楚。第一个和最后一个代码块都应该可以工作。不清楚您希望
$.ajax
调用做什么,因为您没有将正确的选项传递给
$.ajax
。第一个和最后一个方法都给出了
5.33333333
,这正是您所期望的。您在问什么?您在尝试什么要完成吗?我无法理解这个问题的头绪。请也检查一下以防万一。正如@ChrisG所说的,我得到了相同的结果。并且没有得到您期望的结果。另外,我注意到您正在使用回调(而不是使用)错误。您必须将函数名传递给正在使用ajax的函数,然后在完成时调用它。万一这涉及到多个链接API调用,您确实可以链接$.ajax()调用。您无法链接您的函数,因为它们没有返回承诺。请后退一步,告诉我们您的实际目标是什么,不要询问可能完全偏离轨道的感知解决方案。
$。ajax
与您的问题无关。您没有使用回调,因此Promise也与此有关。此外,您没有使用异步代码。