【发布时间】:2017-09-08 17:06:25
【问题描述】:
在我的 Angular 4 组件中,我有一个排序方法。它实际上就像单击表的标题并按该列更改排序顺序以及升序/降序一样简单。但是,那里有一个对服务的调用,最终可能会变得非常昂贵,所以我试图使这个调用异步。示例:
sortColumn(): void {
this.service.someExpensiveBlockingOperation();
this.sortOrder = !this.sortOrder;
this.data.sort((a, b) => { ... });
}
我尝试过使用 Promises 和 Observables,以及 Async / Await,但没有成功。我觉得我错过了一些东西,因为 JS 应该是一种非阻塞、异步驱动的语言。
【问题讨论】:
-
你说的“匿名异步函数”是什么。这与问题有什么关系?你认为你可以从异步调用中获得什么?难道
this.data.sort()不应该等待this.service.someExpensiveBlockingOperation()完成? -
没错。我希望
someExpensiveBlockingOperation()开始,然后立即转到下一行代码。昂贵的操作基本上是用户不需要知道的后端调用,并且不应该等待该调用完成以更新视图。
标签: javascript angular typescript asynchronous nonblocking