首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用/使用来自wolkenkit事件存储的事件流

如何使用/使用来自wolkenkit事件存储的事件流
EN

Stack Overflow用户
提问于 2019-04-17 13:49:34
回答 1查看 81关注 0票数 1

我想使用wolkenkit的事件存储,并试图建立一个快速的例子。但我不能简单地输出事件流。

简化示例:

代码语言:javascript
复制
const eventstore = require("wolkenkit-eventstore/inmemory");
const Stream = require("stream");
const uuidv4 = require("uuid/v4");
const Event = require("commands-events/dist/Event");

const main = async () => {
    await eventstore.initialize();

    const aggregateId = uuidv4();
    const event = new Event({ ... });
    event.metadata.revision = 1;

    await eventstore.saveEvents({ events: event });

    const writableStream = new Stream.Writable();
    writableStream._write = (chunk, encoding, next) => {
        console.log(chunk.toString());
                next()
    };

    const readableStream = eventstore.getUnpublishedEventStream();
    readableStream.pipe(writableStream);
};

main();

据我所知,getUnpublishedEventStream返回一个可读的流。我遵循了的指令,但它并没有像预期的那样工作。我只得到以下错误:

代码语言:javascript
复制
(node:10988) UnhandledPromiseRejectionWarning: TypeError: readableStream.pipe is not a function
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-17 17:16:25

根据wolkenkit文件-事件商店getUnpublishedEventStream是一个async函数,也就是说,您必须用await调用它。否则,您不会得到流返回,而是一个承诺(并且承诺没有一个pipe函数)。

所以,这条线

代码语言:javascript
复制
const readableStream = eventstore.getUnpublishedEventStream();

应:

代码语言:javascript
复制
const readableStream = await eventstore.getUnpublishedEventStream();

除了这一点之外,我还没有仔细查看您的代码,但这就是您获得当前错误消息的原因。

PS:请注意我是wolkenkit的核心开发者之一,所以请接受我的回答。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55729081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档