Rumah > Soal Jawab > teks badan
`var a =1;
set fungsiA(){
$.get('http://localhost/','a=2',function(ret){
return ret.a;
});
}`
Bagaimana untuk membuat fungsi setA mengembalikan nilai ret.a yang diperoleh menggunakan ajax?
怪我咯2017-06-26 10:52:25
Dua cara
1: Tukar ajax kepada penyegerakan, dan anda boleh terus mendapatkan nilai pulangan yang betul.
2: Tambahkan logik pemprosesan anda terus ke panggilan balik ajax
怪我咯2017-06-26 10:52:25
Tambah panggilan balik parameter fungsi ke getA, dan kemudian gunakan panggilan balik(set.a) dalam nilai pulangan ajax.
zAkses set.a seperti ini apabila menggunakan getA: getA(function(a){console.log(a)})
Contohnya adalah seperti berikut:
var a =1;
function setA(callback){
$.get('http://localhost/','a=2',function(ret){
callback(ret.a);
});
}
setA(function(a) {
console.log('a:' + a)
})
仅有的幸福2017-06-26 10:52:25
var a;
$.get('http://localhost/','a=2',function(ret){
setA(ret.a); });
function setA(value){
a=value;
}
function getA(){
return a;
}
高洛峰2017-06-26 10:52:25
kembalikan pembolehubah sementara dalam 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;
}