我正在使用rxjs,如果我的代码中发现错误,我想触发一个错误处理史诗。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale">
<title>Graph</title>
</head>
<body>
<div id="app">
<ul>
<li v-for="item in items">
{{item.root}} -
<button v-on:click="addingDataLevelOne(items)"> + </button>
<button v-on:click="removeLevelOne(items)"> - </button>
<ul>
<li v-for="child in item.childs">
{{child.root}} -
<button> + </button>
<button> - </button>
<ul>
<li v-for="childLevel2 in child.childs">
{{childLevel2.root}} -
<button> + </button>
<button> - </button>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script src="main.js"></script>
</body>
</html>
代码的console.log部分执行,但是我的errorHandler函数没有执行。如果将errorHandler添加到第一个管道,它将运行。我究竟做错了什么?谢谢!
答案 0 :(得分:0)
我认为您错误地使用了内部pipe
。您可以执行以下操作:
concatMap(() => from(getUser()).pipe(
map(loginActions.loginSuccess),
tap(() => console.log('Silent login success'))
)),
catchError((err: any) => {
console.log(err);
loginActions.errorHandler();
return empty();
})