在一个有角度的5项目中,我尝试处理14.20.2. Execution of try-finally and try-catch-finally,但在导入分隔的AssertionError originalError = null;
try {
Assert.assertEquals(true, false, "Boolean values did not match");
} catch (AssertionError e) {
originalError = e;
throw e;
} finally {
try {
Assert.assertEquals(100, 10, "Integer values did not match");
} catch (AssertionError e) {
if (originalError == null)
throw e;
originalError.addSuppressed(e);
throw originalError;
}
}
时,不了解它是如何工作的。
考虑将operators
与fromPromise
相关联:
map
import { fromPromise } from 'rxjs/observable/fromPromise';
import { map } from 'rxjs/operator/map';
返回错误:fromPromise().map()
和
fromPromise_1.fromPromise(...).map is not a function
import 'rxjs/add/observable/fromPromise';
import { Observable } from 'rxjs/Observable';
import { map } from 'rxjs/operator/map';
返回错误:Observable.fromPromise().map()
但
Observable_1.Observable.fromPromise(...).map is not a function
import Rx from 'rxjs/Rx';
按预期工作
像
Rx.Observable.fromPromise().map()
import { fromPromise } from 'rxjs/observable/fromPromise';
import { map } from 'rxjs/operator/map';
有人可以解释一下吗?
答案 0 :(得分:1)
在可管理运算符之前,您必须向Observable
的原型添加运算符才能使用它。
import 'rxjs/add/observable/fromPromise';
此行将fromPromise
运算符添加到Observable
的原型中。您可以查看源代码here。这就是为什么在您添加错误后错误会移至map
。如果您还为map
添加了一个,那么它可能会开始为您工作。
import Rx from 'rxjs/Rx';
这一行将导入包括猴子修补所有操作符到Observable原型的所有内容。这可能会增加你的包大小,所以应该避免。
如果您使用的是RxJs 5.5+,那么您可以使用可移植的运算符代替您执行的操作:
import { map } from 'rxjs/operators';
autobots.pipe(map(autobot => transform(autobot));