角度概念:使用带异步的类

时间:2017-12-10 03:54:21

标签: angular rest asynchronous

我来自旧式的桌面编程世界,我不知道如何通过异步后端将类安装到Angular应用程序中。此外,我看了一些项目,我没有看到很多课程。我喜欢Angular,我对这一点感到困惑。

假设我在我的数据库中存储了有关人员的信息,我的Angular应用程序通过REST API与该后端进行交互。我理解使用人机界面,因为我可以在发送和接收时很好地格式化我的数据,但我不清楚人类的价值。为了读写我的人员DB,我有一个返回observable的Angular服务,所以我可以确定调用何时返回。所以我在该代码中包装了通过person服务的每个操作。

现在,如果我创建一个person类并向该类添加'add'或'delete'方法,我仍然必须将我的调用包装在subscribe或map(或其他)中以确保调用已完成。对服务的实际调用是该代码的一小部分,因此它似乎不是我保存代码或封装任何东西。我为什么要一个人上课?

1 个答案:

答案 0 :(得分:0)

您可以将所有异步功能包装在Class中。

看起来像这样,服务被注入到类中。 (您可以在不注入服务的情况下调用fetch或类似的方法,但这又会重复代码。)

Class Person {
    id: string
    name: string, 
    getName(httpService) {
        httpService.get(/persons/id).subscribe()
            .then((value) => this.name = value.name)
    }
}

但通常情况并非如此。拥有处理异步请求的公共服务更加清晰。

类仍然有用,

  • 非异步任务(全名的实例)

  • 正如您所提到的,拥有用于检索和发送数据的接口非常有用,尤其是使用Typescript(我们使用的是Typewriter,它可以自动从C#代码生成类,这有助于保持模型与后端同步。 )

  • 创建Angular使用的可导出模块。