本文整理汇总了TypeScript中sodiumjs.StreamSink类的典型用法代码示例。如果您正苦于以下问题:TypeScript StreamSink类的具体用法?TypeScript StreamSink怎么用?TypeScript StreamSink使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了StreamSink类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1:
import { StreamSink } from 'sodiumjs'
const s1 = new StreamSink<string>()
const s2 = new StreamSink<string>()
const d1 = s1.orElse(s2).hold('init1')
d1.listen(v => console.log(`*** d1 = ${v}`))
s1.send('s1-1')
s2.send('s2-1')
s1.send('s1-2')
s1.send('s1-3')
s2.send('s2-2')
示例2:
interface Message {
type: string
body: string
}
import { StreamSink } from 'sodiumjs'
const src = new StreamSink<Message>()
const category = src.filter(d => d.type == 'category').map(m => m.body)
category.listen(c => console.log(`category = ${c}`))
const value = src.filter(d => d.type == 'value').map(m => m.body)
value.listen(v => console.log(`value = ${v}`))
value.snapshot(category.hold(''), (v, c) => [c, v])
.listen(d => console.log(`*** ${d}`))
src.send({type: 'category', body: 'type1'})
src.send({type: 'value', body: '1'})
src.send({type: 'category', body: 'type2'})
src.send({type: 'value', body: '2'})
src.send({type: 'invalid', body: 'test'})
src.send({type: 'value', body: '3'})
示例3:
Transaction.run<void>(() => {
s1.send(10)
s2.send(9)
})