3 回答

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
RxJS 中的一切都是同步的,除非你處理延遲或者你有意使用異步調(diào)度程序,例如asyncScheduler
.
當(dāng)你有一個(gè) RxJS 鏈時(shí),它是同步的還是異步的只取決于你使用的操作符和你的源 Observables 的行為。所以這不是of()
or的任何特定內(nèi)容from()
。即使from([1, 2, 3])
orof(1, 2, 3)
發(fā)出三個(gè)值,它也會(huì)同步發(fā)出。
另請(qǐng)注意,您無(wú)法將異步鏈變?yōu)橥叫袨椤?/p>

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
這里有一個(gè)輕微的誤解(正如 Kaustubh 所暗示的):of
不會(huì)立即返回其所有值。只是of
可以接受可變數(shù)量的參數(shù),而只from
需要一個(gè)。
of
將每個(gè)給定的參數(shù)解釋為值,同時(shí)from
會(huì)將單個(gè)給定的參數(shù)轉(zhuǎn)換為可觀察的。
所以這表現(xiàn)相同:
of(1, 2) from([1, 2])
雖然這不會(huì):
of([1, 2]) from([1, 2])

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
考慮以下,
const myValues = ['val1', 'val2', 'val3'];
const atOnce = Observable.of(myValues); // This will emit the entire myValues array as a single emission.
// The Observables below are similar in behaviour
// The will emit the values from myValues one at a time
const discreteOne = Observable.of(...myValues);
const discreteTwo = Observable.from(myValues);