本文整理匯總了TypeScript中@cycle/base.StreamAdapter.isValidStream方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript StreamAdapter.isValidStream方法的具體用法?TypeScript StreamAdapter.isValidStream怎麽用?TypeScript StreamAdapter.isValidStream使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類@cycle/base.StreamAdapter
的用法示例。
在下文中一共展示了StreamAdapter.isValidStream方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: Error
proxyStream.proxy = (target: Stream) => {
if (!target || !adapter.isValidStream(target)){
throw new Error('You should provide a valid target stream to proxy')
}
if (targetStream){
throw new Error('You may provide only one target stream to proxy')
}
targetStream = composeFn(target)
proxyStream.__proxyRefs = 0
return adapter.adapt({}, (_: any, observer: Observer<any>) => {
let dispose = adapter.streamSubscribe(target, observer)
if (proxyStream.__proxyRefs++ === 0) {
proxyDispose = adapter.streamSubscribe(
targetStream, proxyObserver
)
}
return () => {
dispose()
if (--proxyStream.__proxyRefs === 0) {
proxyDispose()
proxyObserver.complete()
if (proxyStream.__onProxyDispose) {
proxyStream.__onProxyDispose()
}
}
}
})
}
示例2: function
return function (sources: any, ...rest: any[]) {
let circular$ = sources[circularName] = proxy()
let sinks = dataflow(sources, ...rest) as any
const proxyStreams: any = {}
const proxiedSinks: any = {}
const disposeCircular = adapter.streamSubscribe(
circular$.proxy(sinks[circularName]), {
next: () => { }, error: () => { }, complete: () => { }
}
)
const checkAllDisposed = () => {
let disposed = true
for (const key in proxyStreams) {
if (proxyStreams[key].__proxyRefs) {
disposed = false
}
}
if (disposed) {
disposeCircular()
}
}
for (const key in sinks) {
// TODO: decide if we we need
// to remove circular$ stream from sinks
//if (key === circularName) return
const sink = sinks[key]
if (sink && adapter.isValidStream(sink)) {
proxyStreams[key] = proxy()
proxiedSinks[key] = proxyStreams[key].proxy(sink)
proxyStreams[key].__onProxyDispose = checkAllDisposed
// TODO: probably can use proxy completition
// if proxy can be subscribed once?
// adapter.streamSubscribe(proxyStreams[key], {
// next: () => { },
// error: () => { },
// complete: () => { console.log(key + 'completed') }
// })
} else {
proxiedSinks[key] = sink
}
}
return proxiedSinks
}
示例3: convertStream
export function convertStream (stream: any, sourceSA: StreamAdapter, targetSA: StreamAdapter) {
return targetSA.isValidStream(stream)
? stream
: targetSA.adapt(stream, sourceSA.streamSubscribe)
}