是可观察对象之间唯一的区别。和Observable.from arguments format?比如Function.prototype.call和Function.prototype.apply?
Observable.of(1,2,3).subscribe(() => {})
Observable.from([1,2,3]).subscribe(() => {})
是可观察对象之间唯一的区别。和Observable.from arguments format?比如Function.prototype.call和Function.prototype.apply?
Observable.of(1,2,3).subscribe(() => {})
Observable.from([1,2,3]).subscribe(() => {})
当前回答
From以块的形式返回通知,即一个接一个。 例如:from("abcde")将返回a => b => c => d => e 返回完整的通知。 例如:of("abcde")将返回abcde。
https://stackblitz.com/edit/typescript-sckwsw?file=index.ts&devtoolsheight=100
其他回答
from操作符获取事件源。从(源)
let array = [1,2,3,4,5]
from(array); //where array is source of events, array[of events]
let promise = new Promise(function(resolve, reject) {
// executor (the producing code, "singer")
});
from(promise); //where promise is source of event, promise(of event)
let observable = Observable.create(function(observer) {
observer.next(1);
observer.next(2);
observer.next(3);
observer.next(4);
observer.next(5);
observer.complete();
});
from(observable); // where obsservable is source of events.
运算符of接受单个事件。(event1, event2, event3)
of(1,2,3,4,5); // where 1,2,3,4,5 are individual events
From以块的形式返回通知,即一个接一个。 例如:from("abcde")将返回a => b => c => d => e 返回完整的通知。 例如:of("abcde")将返回abcde。
https://stackblitz.com/edit/typescript-sckwsw?file=index.ts&devtoolsheight=100
不完全是。当将数组传递给Observable.from时,它与Observable.from之间唯一的区别是。是参数传递的方式。
然而,Observable.from将接受一个参数
可订阅对象、Promise对象、类observable对象、Array对象、可迭代对象或要转换的类数组对象
Observable没有类似的行为。的,它总是只接受值并且不执行转换。
的值会同时发出所有的值
From将逐一发出所有值
with展开运算符= from运算符
当我想到与.call / .apply方法的类比时,我发现更容易记住它们的区别。
你可以这样想:
通常,单独传递的所有参数(用逗号分隔)也会按照传递的顺序单独发出。Of()只是逐个发出所有参数(就像.call方法将参数传递给被调用的函数一样) 从某种意义上说,From()类似于.apply,它可以接受一个值数组作为参数,并将数组元素转换为用逗号分隔的独立参数。
因此,如果您有一个数组,并希望每个元素分别发出,您可以使用from()或通过使用of()和扩展操作符(如of(…arr))来获得相同的行为。
这有点复杂(从也可以观察到),但通过这个类比,可能会更容易记住主要的区别。