javascript - 如何确保异步方法已完成

标签 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 变量之前调用“if”条件,并引发错误。在继续执行之前如何确保结果可用?

最佳答案

如果您想确保它也设置了 .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你的代码。

关于javascript - 如何确保异步方法已完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26908274/

相关文章:

javascript - 将变量传递给被插入现有数组的字符串

javascript - .call(this) JavaScript 中的习语

android - 当我将 html 数据从字符串加载到 webview 时,Jquery 功能不起作用

JavaScript:我收到错误 "Uncaught SyntaxError: Unexpected token { "

javascript - JQuery 将 div 添加到图像列表

javascript - 将局部变量传递给带参数的 lambda 函数?

android - 使用协同程序读取和复制文件

c# - 如何在不更改签名的情况下将同步方法转换为异步方法

java - 想要在 HTML 表单字段中捕获 'Enter' 按键

javascript - 更改字体 dateTimeLabel Highstock