小编phz*_*nta的帖子

在rxjs Observable中抛出错误

我试图在rxjs Observable中抛出一个错误

 new Observable(subscriber => {
   Observable.throw("error1");
   return Observable.throw("error2");
 })
 .subscribe(
   () => {},
   err => console.error(err)
 );
Run Code Online (Sandbox Code Playgroud)

错误1未被捕获.

error2给出了编译错误:

Argument of type '(this: Observable<{}>, subscriber: Subscriber<{}>) => ErrorObservable<string>' is not assignable to parameter of type '(this: Observable<{}>, subscriber: Subscriber<{}>) => TeardownLogic'. Type 'ErrorObservable<string>' is not assignable to type 'TeardownLogic'
Run Code Online (Sandbox Code Playgroud)

在一个observable中抛出错误的正确方法是什么?

javascript error-handling reactive-programming rxjs

15
推荐指数
3
解决办法
2万
查看次数

在docker compose中使用主机网络和其他网络

我正在尝试为我的项目设置开发环境.

我有一个容器(ms1)应该放在他自己的网络中(在我的情况下是"服务"),以及一个容器(apigateway)应该访问该网络,同时将一个http端口暴露给主机的网络.

理想情况下,我的docker撰写文件看起来像这样:

version: '2'
services:
    ms1:
        expose:
            - "13010"
        networks:
            services:
                aliases:
                    - ms1
   apigateway:
        networks:
            services:
                aliases:
                    - api
        network_mode: "host"
networks:
    services:
Run Code Online (Sandbox Code Playgroud)

docker-compose不允许同时使用network_mode和网络.

我还有其他选择吗?

目前我正在使用这个:

   apigateway:
        networks:
            services:
                aliases:
                    - api
        ports:
            - "127.0.0.1:10000:13010"
Run Code Online (Sandbox Code Playgroud)

然后apigateway容器侦听0.0.0.0:13010.它工作但它很慢,如果主机的互联网连接断开,它会冻结.

另外,我计划将来在docker上使用vagrant,它是否允许以干净的方式解决?

networking vagrant docker docker-compose devops

13
推荐指数
1
解决办法
1万
查看次数

使用routerLink的angular2 unset outlet

我的模板看起来像这样:

<router-outlet></router-outlet>
<router-outlet name="rightpanel"></router-outlet>
Run Code Online (Sandbox Code Playgroud)

让我们说我的网址是:

/#/page1(rightpanel:panel)
Run Code Online (Sandbox Code Playgroud)

我想切换到page2并使用routerLink指令删除辅助插座.我尝试了以下方法:

[routerLink]="['/page2', {outlets: {rightpanel: null}}
[routerLink]="['/page2', {outlets: {}}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,页面都切换到page2,但rightpanel仍处于活动状态.我能解决的唯一方法是将以下代码放在page2的构造函数中:

this.router.navigate([{outlets: {rightpanel: null}}]);
Run Code Online (Sandbox Code Playgroud)

由于许多原因,这不是一个好的解决方案.

使用角2.4.3,路由器3.4.3

router router-outlet angular

7
推荐指数
1
解决办法
1509
查看次数

用typescript实现express控制器类

我正在用打字稿做一个快速的应用程序.路由器代码是:

let user = new User();
router.get("/", user.test);
Run Code Online (Sandbox Code Playgroud)

用户类是

export class User {
   test(req, res, next) {
      // this === undefined
   }
}
Run Code Online (Sandbox Code Playgroud)

问题是这个对象在测试方法中是未定义的.有没有更好的方法来实现快速路由?

routing node.js express typescript

6
推荐指数
2
解决办法
7080
查看次数