前端ajax返回500,【Web前端问题】如何return返回ajax请求完成后的数据

先上代码

function getNewDate( flyNum ){

$.ajax({

url: '',

type: 'GET',

dataType: 'json',

async: true,

data: {

param1: flyNum

},

})

.done(function(res) {

var thisDate = res.data.date; //需要返回thisDate

})

.fail(function(err) {

//console.log("error");

})

.always(function() {

});

}

var mydate = getNewDate(123);

使用的jquery封装的ajax

在done中return的是done方法

请问如何才能在getNewDate函数中返回获取到的thisDate

目的只有一个,getNewDate返回thisDate,求大佬们教育教育,感觉脑子糊了

回答:

异步请使用Promise

function getNewDate(flyNum)

{

return new Promise(function(resolve,reject)

{

$.ajax(

{

url: '',

type: 'GET',

dataType: 'json',

async: true,

data:

{

param1: flyNum

},

})

.done(function(res)

{

var thisDate = res.data.date; //需要返回thisDate

resolve(thisDate);

})

.fail(function(err)

{

//console.log("error");

reject(err);

})

.always(function()

{

});

});

}

getNewDate(123).then(function(resolveData)

{

//code....

console.log('resolveData',resolveData);

},function(rejectData)

{

console.log('rejectData',rejectData);

});

回答:

需要把 ajax 设置为同步,定义一个变量把获取到的值赋值给这个变量,最后返回这个变量

function getNewDate( flyNum ){

var rst;

$.ajax({

url: '',

type: 'GET',

dataType: 'json',

async: false,

data: {

param1: flyNum

},

})

.done(function(res) {

var thisDate = res.data.date; //需要返回thisDate

rst = thisDate;

})

.fail(function(err) {

//console.log("error");

})

.always(function() {

});

return rst;

}

var mydate = getNewDate(123);

回答:

ajax是异步的,你可以在$.ajax{}内对thisDate去操作,赋值页面还是其他操作都可以,但是想要在这个作用域外去得到的话是不行的

回答:

function getNewDate( flyNum ){

var thisDate

$.ajax({

url: '',

type: 'GET',

dataType: 'json',

async: false,

data: {

param1: flyNum

},

})

.done(function(res) {

thisDate = res.data.date; //需要返回thisDate

})

.fail(function(err) {

//console.log("error");

})

.always(function() {

});

return thisDate;

}

var mydate = getNewDate(123);

把ajax异步请求改为同步请求->async: false

既然是封装方法,有返回值才会赋值给mydate

回答:

用deffer + promise

回答:

回答:

题主是不是可能遇到this指向的问题了,所以才想到在ajax请求之后把数据返回回去?ajax的回调里是可以直接处理数据的,回调函数就是干这个的。

function getNewDate( flyNum ){

var _this = this;

$.ajax({

url: '',

type: 'GET',

dataType: 'json',

async: true,

data: {

param1: flyNum

},

})

.done(function(res) {

_this.thisDate = res.data.date;

})

.fail(function(err) {

//console.log("error");

})

.always(function() {

});

}

只是一个猜测哈,不是很清楚具体什么功能需求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值