Javascript – JQuery-Ajax-Rückgabewerterfassung
怪我咯
怪我咯 2017-06-26 10:50:25
0
4
699

`var a =1;

function setA(){
$.get('http://localhost/','a=2',function(ret){

  return ret.a;

});
}`
Wie kann man die Funktion setA dazu bringen, den mit Ajax erhaltenen Wert von ret.a zurückzugeben?

怪我咯
怪我咯

走同样的路,发现不同的人生

Antworte allen(4)
刘奇

两种方式
1:ajax改成同步,可以直接获取正确的return的返回值。
2:ajax回调中直接添加你的处理逻辑

刘奇

给getA加个函数的参数callback,然后在ajax返回值里用callback(set.a)。
z在使用getA时这样访问到set.a:getA(function(a){console.log(a)})

示例如下:

    var a =1;

    function setA(callback){
        $.get('http://localhost/','a=2',function(ret){
            callback(ret.a);
        });
    }
    
    setA(function(a) {
        console.log('a:' + a)
    })
仅有的幸福
var a;

$.get('http://localhost/','a=2',function(ret){
    setA(ret.a); });
function setA(value){
    a=value;
}

function getA(){
    return a;
    }
小葫芦

setA里使用一个临时变量存储,setA里面的AJAX使用同步请求,成功后将值存在临时变量中,然后由setA返回临时变量

setA() {
    var temp = '';

    $.get({
        url: 'http://localhost/',
        data: {a: 2},
        async: false,
        success: function(ret) {
            temp = ret.a;
            return ;
        }
    });
    
    return temp;
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage