我正在更新我们的软件,用所有承诺(以及其他毛茸茸的垃圾)代替可观察物。为了确保我遵循最佳做法,我做了一个快速googlearch并注意到在some cases中,建议的语法是实例,而在other cases中,示例执行工厂调用。
const byInstance = new Observable(_ => { ... });
const byFactory = Rx.Observable.create(_ => { ... });
我很好奇实际差异是什么。它们是否可以互换?它是一种较旧/较新的语法/方法吗?它与框架有关吗?而且,当然,这是首选(在没有见解,有争议等情况下)。
答案 0 :(得分:18)
没有区别。 Observable.create
calls new Observable
。
正如the manual所说,
传统上使用使用Rx.Observable.create或创建来创建Observable 操作
< ...>
Rx.Observable.create是Observable构造函数的别名
Observable.create
,可能是因为它在链中读得更好并且与创建可观察对象的其他Observable
静态方法一致。
差异可能出现在子类中。例如,Subject.create
等于AnonymousSubject.create
且不等于new Subject
。通常Subject.create
是提供理想行为的人,而new Subject
则更低级。这证实了关于惯例的观点。
另一方面,某些类(特别是BehaviorSubject
)应该与new
一起使用,因为create
签名不允许向它们提供所需的行为。
答案 1 :(得分:2)