如何确保异步方法已经完成

时间:2014-11-13 11:50:55

标签: javascript jquery asynchronous

我正在使用JavaScript

的异步/ promise方法

以下是我的代码片段:

var func = new instance.web.Model("session.table").get_func("check_session_state");

func(session_id).then(function(res) {
    localStorage.setItem('session_state', res);
});

if (localStorage.getItem('session_state') == inactive)
    alert("Session Inactive !");

问题在于'如果'在设置session_state变量之前调用condition,并抛出一个错误。在继续执行之前,如何确保结果可用?

2 个答案:

答案 0 :(得分:1)

如果您想确保它也设置为.then()您的if代码:

var func = new instance.web.Model(" session.table")。get_func(" check_session_state");

func(session_id)
.then(function(res) {
    localStorage.setItem('session_state', res);
})
.then(function(){
  if (localStorage.getItem('session_state') == inactive) {
    alert("Session Inactive !");
  }
});

我还建议jshinting您的代码。

答案 1 :(得分:0)

将if条件移动到回调函数中。

func(session_id).then(function(res) {
    localStorage.setItem('session_state', res);
    if (localStorage.getItem('session_state') == inactive)
        alert("Session Inactive !");
});