Angular ng用于调用返回Observable的函数

时间:2019-02-17 19:24:10

标签: angular typescript rxjs

我正在使用一个函数返回一个Observable,然后在模板中使用异步管道,但是这导致成千上万的网络请求并使浏览器崩溃。我敢肯定这很明显,但是我是Angular的新手。我在stackblitz上创建了一个示例:

https://stackblitz.com/edit/angular-mvpknj

<h1>Todos</h1>
<<ul>
  <li *ngFor="let todo of completedTodos | async" >{{ todo.title }}</li>
  <!-- <li *ngFor="let todo of getCompletedTodos() | async" >{{ todo.title }}</li> -->
</ul>

未注释的行可以正常工作,因为它引用的是类变量而不是函数。

如果取消注释使用getCompletedTodo函数的* ngFor,它只会炸毁浏览器。

2 个答案:

答案 0 :(得分:0)

我认为原因是,当for循环迭代时,对于每次迭代,都会执行方法Java,该方法将调用API,并且它将继续发送请求,正如您在浏览器工具中看到的那样,并且因此会炸毁浏览器。

答案 1 :(得分:0)

我稍微修改了您的代码。您可以在此StackBlitz中找到它。据我所知,它只执行一次。