您好,匿名用户

在ajax成功回调函数里把一个对象return出去,在外面console.log却是undefined

0 投票
function getSysTime(){
    var time = {}
    $.ajax({
        type: "HEAD",
        url: "/",
        complete: function(x) {
            //console.log(x.getResponseHeader("Date"));
            var date = x.getResponseHeader("Date").substring(17,22).split(":")
            return time = {
                hours:parseInt(date[0])+8,
                minutes:parseInt(date[1])
            }
            
        }
    })
}
var s = getSysTime()
console.log(s)
用户头像 提问 2017年 4月14日 @ Gragas 中士 (1,224 威望)
分享到:

1个回答

0 投票

ajax 默认属于 异步回调函数. 执行了getSysTime() 函数后 实际上该函数没有任何显示 return操作, 默认返回 undefined.

如何修改:

function getSysTime(){
    var time = {}
    $.ajax({
        type: "HEAD",
        url: "/",
        complete: function(x) {
            //console.log(x.getResponseHeader("Date"));
            var date = x.getResponseHeader("Date").substring(17,22).split(":")
            ajaxSuccess({
                hours:parseInt(date[0])+8,
                minutes:parseInt(date[1])
            });
            
        }
    })
}
function ajaxSuccess (data) {
  console.log(data);
}
getSysTime();
用户头像 回复 2017年 4月14日 @ Kayle 中士 (1,022 威望)
提一个问题:

相关问题

0 投票
1 回复 86 阅读
0 投票
1 回复 210 阅读
0 投票
1 回复 137 阅读
0 投票
1 回复 114 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

IT技术交流群 - 随意问
欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...