cv-dialog-sdk
Version:
Catavolt Dialog Javascript API
19 lines (16 loc) • 598 B
text/typescript
import { StreamConsumer } from './StreamConsumer';
import { StreamProducer } from './StreamProducer';
export class Pump {
constructor(private consumer: StreamConsumer, private producer: StreamProducer) {}
public start(): Promise<void> {
const f: StreamConsumer = async (result: { done: boolean; value: any }) => {
await this.consumer(result);
if (result.done) {
return Promise.resolve();
} else {
return this.producer.read().then(f);
}
};
return this.producer.read().then(f);
}
}