本文整理汇总了TypeScript中@tempest/core.PropagateTask类的典型用法代码示例。如果您正苦于以下问题:TypeScript PropagateTask类的具体用法?TypeScript PropagateTask怎么用?TypeScript PropagateTask使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了PropagateTask类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: it
it ('should end a stream when a signal emits', (done) => {
const signal = new Stream<number>({
run (sink: Sink<number>, scheduler: Scheduler) {
const task = scheduler.delay(90, PropagateTask.event(100, sink))
return {
dispose () {
scheduler.cancel(task)
}
}
}
})
const source = new Stream<number>({
run (sink: Sink<number>, scheduler: Scheduler) {
const task = scheduler.periodic(50, PropagateTask.event(0, sink))
return {
dispose () {
scheduler.cancel(task)
}
}
}
})
const stream = endWhen(signal, source)
const expected = [0, 0]
stream.subscribe((x: number) => {
assert(x === expected.shift())
}, done, (y) => {
assert(y === 100)
done()
})
})
示例2: run
run (sink: Sink<void>, scheduler: Scheduler): Disposable<void> {
const task = scheduler.asap(PropagateTask.end(void 0, sink))
return {
dispose () {
scheduler.cancel(task)
}
}
}
示例3: run
run (sink: Sink<Error>, scheduler: Scheduler): Disposable<Error> {
const task = scheduler.asap(PropagateTask.error(this.err, sink))
return {
dispose () {
scheduler.cancel(task)
}
}
}
示例4: it
it ('should sample another streams values', function (done) {
const sampler = new Stream<number>({
run (sink: Sink<number>, scheduler: Scheduler) {
scheduler.delay(100, PropagateTask.event(0, sink))
scheduler.delay(250, PropagateTask.event(0, sink))
scheduler.delay(260, PropagateTask.end(0, sink))
return {
dispose () {
return void 0
}
}
}
})
const stream = new Stream<number>({
run (sink: Sink<number>, scheduler: Scheduler) {
sink.event(scheduler.now(), 1)
setTimeout(() => {
sink.event(scheduler.now(), 2)
}, 150)
setTimeout(() => {
sink.event(scheduler.now(), 3)
}, 190)
return {
dispose () {
return void 0
}
}
}
})
const expected = [1, 3]
sample(sampler, stream).subscribe((x: number) => {
assert(x === expected.shift())
}, done, (x) => {
assert(x === 3)
done()
})
})
示例5: it
it ('should flatten a higher order stream into a single order stream', (done) => {
const stream = Stream.of(1, 2, 3)
const higherStream = new Stream<Stream<number>>({
run (sink: Sink<Stream<number>>, scheduler: Scheduler) {
const task = scheduler.asap(PropagateTask.event(stream, sink))
const task2 = scheduler.asap(PropagateTask.end(void 0, sink))
return {
dispose () {
scheduler.cancel(task)
scheduler.cancel(task2)
}
}
}
})
const s = flatten(higherStream)
const expected = [1, 2, 3]
s.subscribe((x) => {
assert(x === expected.shift())
}, done, () => done())
})
示例6: it
it ('should allow replacing a stream after an error', (done) => {
const errorStream = new Stream<any>({
run (sink: Sink<any>, scheduler: Scheduler) {
const task = scheduler.asap(PropagateTask.error(new Error('oh no'), sink))
return {
dispose () {
scheduler.cancel(task)
}
}
}
})
const replace = (e: Error) => Stream.of(1)
const stream = replaceError(replace, errorStream)
stream.subscribe((x: number) => {
assert(x === 1)
}, done, () => done())
})
示例7: complete
complete (value?: T) {
defaultScheduler.asap(PropagateTask.end(value, this.source))
}
示例8: error
error (err: Error) {
defaultScheduler.asap(PropagateTask.error(err, this.source))
}
示例9: next
next (value: T) {
defaultScheduler.asap(PropagateTask.event(value, this.source))
}