本文整理汇总了TypeScript中@cycle/base.StreamAdapter.streamSubscribe方法的典型用法代码示例。如果您正苦于以下问题:TypeScript StreamAdapter.streamSubscribe方法的具体用法?TypeScript StreamAdapter.streamSubscribe怎么用?TypeScript StreamAdapter.streamSubscribe使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@cycle/base.StreamAdapter
的用法示例。
在下文中一共展示了StreamAdapter.streamSubscribe方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: return
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
}