javascript - 如何从 javascript/jQuery 中调用另一个函数的函数获取返回值?

标签 javascript jquery return

因此您可以为 var doub 赋值,如下所示:

function getDouble(number) {
    var doubl = number + number;
    return doubl;
}

var num = 4;
var doub = getDouble(num);

我想知道是否可以通过调用第二个函数来获取返回类型,如下所示。那么第二个方法的返回值可以赋值给doub吗?

function getDouble(number) {
    var doubl = number + number;
    return quadruple(doubl);
}

function quadruple(doubl) {
    quad = doubl + doubl
    return quad;
}

var num = 4;
var doub = getDouble(num);

由于某种原因,它对我不起作用。

这是我有问题的代码。我正在做与上面类似的事情,但不起作用:

在我的文档中,我有这段代码。我希望将结果存储在 newjsn

    $(document).ready(function() 
    {
     var newjsn= DatabaseCategoriesToSelectList(num, 200, 100);

我的 DatabaseCategoriesToSelectList 函数是:

function DatabaseCategoriesToSelectList(jsn, max, min){

    var ddl="<option selected='selected' value='"+min+"'>Select...</option>";

    //load categories from database, and put them into the select drop down.
    $.getJSON(GLOBALURL+'content/plugins/subcategories/getSubcategories.php',             
        function(data, ddl) {

            var datas=  jQuery.grep(data, function(element, index){
                return element.category_id < max && element.category_id>min; // retain appropriate elements
            });
            for (x=0; x<datas.length; x++){
                ddl= ddl+"<option value='"+datas[x].category_id+"'data-subcategory='"+datas[x].category_subselect+"'>"+datas[x].category_safe_name+"</option>";
            }   
            alert (ddl); return runafter(ddl, jsn); 
        });

}

function runafter(ddl, jsn){
    jsn=ddl;
    alert(jsn);

    return 500;

}

出于某种原因,警报有效,但我无法让它返回字符串。我什至尝试返回一个随机值 500,但它没有..

最佳答案

问题是您永远不会从 DatabaseCategoriesToSelectList 函数中返回。您的函数如下所示:

function DatabaseCategoriesToSelectList(jsn, max, min) {
    ...
    $.getJSON(GLOBALURL+'content/plugins/subcategories/getSubcategories.php',             
        function(data, ddl) {
             ...
             return runafter(ddl, jsn); 
        }
    );
}

内部return不是从DatabaseCategoriesToSelectList返回,而是从内部函数返回。但是,无论您做什么,都无法使其返回您想要的值,因为 $.getJSON 是异步调用。你必须放一些类似的东西

function(data, dll) {
    ...
    var newjsn = runafter(ddl, jsn);
    // put the rest of your stuff that uses newjsn here
}

在你的代码中,然后将后面的内容也放入该函数中。

关于javascript - 如何从 javascript/jQuery 中调用另一个函数的函数获取返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15912829/

相关文章:

ios - Xcode 10.1 "return"语句不会停止函数执行

javascript - 在 CoffeeScript 中定义 BootstrapValidator 回调

javascript - 使用 Chrome 开发者工具调试 onFocus 事件?断点后无法返回焦点

javascript - 数据表的复杂 R Shiny 输入绑定(bind)问题

jquery - Json 响应未绑定(bind)到 jquery 数据表

javascript - 如何在单个页面上检查多个表单的必填字段?

jquery - Blueimp文件上传: my DELETE link doesn't work

c - 未使用的返回值的 ast 匹配器

javascript - 尝试使用条件从 JSON 文件中过滤数组

javascript - 以逻辑运算符返回(&& 返回、|| 返回)