繁体   English   中英

我该怎么办:var value = foo(bar); 其中foo是通过JSON请求查找值的函数

How can I do: var value = foo(bar); Where foo a function that looks up the value through a JSON request

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

来自PHP背景,当我使用JavaScript和jQuery进行编程时,经常会遇到这种问题。 我需要一个需要接受变量并执行服务器查询以返回状态结果的函数。

与其不必在4个不同的地方重复相同的代码(我现在正在做而我的老板不喜欢),我希望它是可以从任何地方调用的函数。

实际的代码要复杂得多,出于这个问题的目的,我将其简化为基本概念。

我尝试使用“ async:false”,以便该函数在返回之前会等待ajax调用完成,但是没有用。

解决方案可能是使用回调函数。 这是如何工作的,我将需要如何构造代码以在应用程序(代码)的不同位置普遍实现这一目标?

var sample = "ABC12345";
var samplestatus = getStatus(sample);
console.log("!!!!" + samplestatus + "!!!!");        

function getStatus(samplenumber) {  
    var jsonurl =  "lookup.php?s="+samplenumber;
    $.ajax({
        url: jsonurl,
        dataType: 'json',
        async: false,
        success: function(data1) {
            var s_status;
            if (typeof(data1[0]) !== 'undefined') {
                var data = data1[0];
                s_status = data.STATUS;
                console.log("Sample " + samplenumber + " has a status of "+s_status);
                return(s_status);
            } else {
                return(0);  
            }
        }
    });     
}

输出:

Sample ABC12345 has a status of COMPLETED
!!!!undefined!!!!
1 个回复

您应该从调用的函数中返回。

function getStatus(samplenumber) {
    var jsonurl  ="lookup.php?s="+samplenumber;

    return $.ajax({
        url: jsonurl,
        dataType: 'json',
        async: false,
        success: function(data1) {
            var s_status;
            if (typeof(data1[0]) !== 'undefined') {
                var data = data1[0];
                s_status = data.STATUS;
                console.log("Sample " + samplenumber + " has a status of "+s_status);
                return s_status;
            } else {
                return 0;  
            }
        }
    });
}
3 查找/ foo / bar *而不是查找/ foo -name“ bar *”

通常建议使用 查找/foo以bar开头的所有文件。 使用起来不是很简单吗 ? 我的理解是bash所做的扩展/foo/bar*在最后一个例子,而不是find自己,但有没有参与任何风险? 我用例是我想要存储的命令来find在一个变量,例如, 这不起作用,或者 ...

2014-01-17 14:30:53 5 106   bash
5 foo = {foo} bar = {bar}的简写

我是JSX的新手,我发现自己做的是<Component foo={foo} bar={bar}>的TON。 为了避免最终两次输入foo和bar我使用了对象传播<Component {...{foo, bar}}> 但是我认为这不是JSX编译的,而是一个在运行时 ...

2017-02-05 22:08:36 0 49   jsx
9 $ foo ['bar'] =“ Value”和$ foo [bar] =“ Value”有什么区别

因此,我有一些类似的代码: 我认为应该改为$foo['bar']="value 1"但我想知道为什么(以及更多关于此的术语),以及如果这是“错误代码”,为什么它会起作用? 单独保留代码有什么危险? 添加引号有什么机会破坏某些东西? 跟进/奖金:嵌套数组呢? 在这里,我确 ...

2018-05-23 14:44:12 2 60   php
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM