如何确保异步方法已完成
How to ensure asynchronous method has completed
我使用的是使用JavaScript 的异步/承诺方法
以下是我的代码片段:
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 !");
问题是"if"条件在session_state变量设置之前被调用,并引发错误。在继续执行之前,我如何确保结果可用?
如果您想确保它也设置为.then()
,那么您的If代码也是:
var func=新实例.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 !");
}
});
我还建议jshint您的代码。
将if条件移动到回调函数中。
func(session_id).then(function(res) {
localStorage.setItem('session_state', res);
if (localStorage.getItem('session_state') == inactive)
alert("Session Inactive !");
});
相关文章:
- 角度异步http自动完成
- 对象不支持属性或方法“自动完成”
- 对象#<XMLHttpRequest>没有方法'完成'
- 如何将一个方法延迟到另一个方法首先完成,javascript
- 将其中一个异步方法重写为使用promise的方法
- strongloop script.js run find in before delete方法:如何同步运行异步方法
- 在动态crm 2011中,右键单击已完成活动的只读文本时,您是否出现错误
- 检查jquery(或ajax)功能是否已完成
- 如何检测我的音频流是:正在播放、暂停还是已完成
- QtWebKit中的JavaScript和异步方法
- Node.js-异步方法调用问题
- 回流如何侦听异步操作已完成
- 在继续之前,请确保异步GET/POST请求已完成
- jQuery:如何检查以确保所有异步操作都已完成
- 如何确保异步方法已完成
- 如何知道 Javascript 追加方法是否已完成脚本标记
- 在绘制d3图表之前,请检查多个异步函数是否已完成
- 我如何推迟javascript执行,直到异步方法完成执行
- 我如何正确地发出响应后等待异步方法完成时
- 仅在异步方法完成时呈现页面