angularjs – 角度2,如何使用setTimeout?

登录页面中,当我们提交页面时,我有这个功能
checkLogin(){
    this.x_userS.getLogin(this.x_userO.login_name,this.x_userO.pwd_plain).then(response => this.x_userO=response);
    (function(){
        setTimeout(() => {
            if (this.x_userO.login_status == "1") {
                this.x_companyS.getCompanyByUser(this.x_userO.user_id).then(response => this.x_companyO=response);
                (function(){setTimeout(() => {
                    this.x_userS.setUser(this.x_userO);
                    this.x_companyS.setCompany(this.x_companyO);
                    this.router.navigate(['HomePage']);
                },2000);
            })();
            }
            else {
                window.alert("oops");
            }
        },2000);
    })();
}

其中x_userS是登录服务,x_userO是用户对象.我正在努力给予承诺两秒钟,以便在处理之前返回数据.没有setTimeout,它不会及时返回.

我尝试删除除了警报之外的所有内容,并在两秒钟后进行了验证.但是,它并没有识别出任何其他功能(){}的内容,所以我相信我需要传递所有的服务和对象.

有谁知道如何做到这一点?

如果你使用function(),那么这个.不会指向你的类中的变量.
Use()=>而是到处都是

setTimeout()周围的(function(){…})()似乎是冗余的.

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...