需要等待AJAX​​调用,localStorage项仍然是'undefined'

时间:2015-01-27 14:50:29

标签: javascript jquery ajax

我创建了一个功能,可以在用户自动注销之前设置一段时间,如果他在那段时间闲置的话。用户可以自己选择这个时间,这就是我编写AJAX调用的原因。

旁注:我是Javascript / Jquery / ...初学者。

function checkTimeBeforeIdle() {
alert("BEFORE: " + localStorage.getItem("timeBeforeIdle"));

    if (localStorage.getItem("timeBeforeIdle") === null || localStorage.getItem("timeBeforeIdle") == "undefined") 
    {
        localStorage.setItem("timeBeforeIdle", getTimeBeforeIdle());

        alert("AFTER: " + localStorage.getItem("timeBeforeIdle"));
    }
}

function getTimeBeforeIdle() {
$.ajax({
    url: 'Idle/GetTimeBeforeIdle',
    type: 'GET',
    dataType: 'json',
    success: function (data) {
        // process the data coming back
        alert("DURING: " + data);
        return data;
    },
    error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.status);
        alert(thrownError);
    }
});

}

我使用此配置获得的警报(按相同顺序):

之前:未定义

AFTER:undefined

期间:15

我期望的行为是:

之前:未定义

期间:15

AFTER:15

从我的C#'体验'我认为应该等待某种方法吗?这是对的,如果是的话,我该怎么做?或者应该以何种方式实现此功能。

我看到已经提出了多个相似的问题,但我并不真正理解那里的答案以及如何在我的代码中使用它。也许有人可以解释这里找到的答案:How do I return the response from an asynchronous call?对我来说更具体。

0 个答案:

没有答案