首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ng2-translate的竞争条件

使用ng2-translate的竞争条件
EN

Stack Overflow用户
提问于 2016-08-31 14:17:56
回答 1查看 136关注 0票数 1

我的app.component看起来像这样:

代码语言:javascript
复制
export class AppComponent {

    public constructor(public translate: TranslateService) {

        const userLang = navigator.language.split('-')[0];
        const acceptedUserLang = /(de|en)/gi.test(userLang) ? userLang : 'en';
        this.translate.setDefaultLang('en');
        this.translate.use(acceptedUserLang);
    }
}

我的app.routing有以下定义:

代码语言:javascript
复制
const appRoutes: Routes = [
    {path: 'signUpSuccess/:language', component: SignUpSuccessComponent},
];

还有我的signUpSuccess.component

代码语言:javascript
复制
export class SignUpSuccessComponent {

    public constructor(translate: TranslateService, route: ActivatedRoute) {
        translate.use(route.snapshot.params['language']);
    }
}

当我使用/signUpSuccess/de加载页面时,app.component将语言设置为enng2-translate开始从服务器获取en.json,然后signUpSuccess.component将语言设置为deng2-translate开始从服务器获取de.json。如果由于任何原因,现在de.json赢得了竞争,并且首先到达客户端,那么当en.json到达客户端时,语言将切换到en。我怎样才能避免这种情况?

EN

回答 1

Stack Overflow用户

发布于 2016-08-31 16:16:03

查看这个演示插入器:https://plnkr.co/edit/dfhdAI1o6VhVHFcnKmWH?p=preview

您可以使用此函数

代码语言:javascript
复制
switchMap()

使用此功能,如果前一个请求仍处于待决状态,则会取消前一个请求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39242062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档