我正在通过观看教程和阅读文章深入研究信号。当使用 httpClient 调用 api 端点时,我看到了两种主要方法(至少是我喜欢的),并且我无法在网上找到太多比较这两种方法的信息。第一个是拥有一个带有函数的服务,该函数使用 httpClient 进行端点调用,使用 RxJs 运算符处理错误,然后将响应转换为信号。调用组件以信号形式返回响应。因此基本上将响应转换为信号和错误处理是由服务完成的。第二种方法是让服务在使用 async/await 并返回承诺的函数中使用 httpClient 进行端点调用。调用组件还将有一个带有 try-catch 块的异步等待函数,该函数获取承诺并将响应设置为信号。因此基本上服务只是获取数据并将其作为承诺发送给调用者,调用组件处理错误并将数据分配给信号。想法?有想法吗?评论?混合两者?其他方法?
Angular 使用
httpClient
并且所有方法都会返回一个 observable,那么除非你有特定的目的使用 Promise(例如:使用服务调用的序列需要返回一个 Promise),否则没有太大的好处通过将可观察的结果转换为承诺。
Promise 没有简单的错误处理功能,并且可以进行 Promise 切换,但从角度来看,使用管道的流效率更高,可以处理您需要的任何场景。