首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在NoFlo中使用组?

如何在NoFlo中使用组?
EN

Stack Overflow用户
提问于 2014-05-07 13:57:33
回答 1查看 283关注 0票数 4

NoFlo组件文档提到了组,但没有解释它们用于什么以及应该如何使用它们。

有人能解释一下组在NoFlo中扮演什么角色,如何使用组和嵌套组,以及它如何影响异步组件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-08 11:09:35

群的概念是在FBP书中被描述为“括号in”

基本上,begingroupendgroup是特殊的数据包类型,它们指定在它们之间发送的数据包包含作为元数据的组。

把它想得有点像XML:

代码语言:javascript
复制
<somegroup>
  <innergroup>
    data
  </innergroup>
</somegroup>

在NoFlo中,这将适用于:

代码语言:javascript
复制
@outPorts.out.beginGroup 'somegroup'
@outPorts.out.beginGroup 'innergroup'
@outPorts.out.send "data"
@outPorts.out.endGroup()
@outPorts.out.endGroup()

接收到的inport通过begingroupendgroup事件获取这些信息,并且可以对它们做一些事情,或者忽略它们。通常,对于不使用组但对信息包执行某些转换的组件来说,一个很好的行为是至少将它们传递下去。

代码语言:javascript
复制
@inPorts.in.on 'begingroup', (group) =>
  @outPorts.out.beginGroup group
@inPorts.in.on 'data', (data) =>
  # do something and then send
@inPorts.in.on 'endgroup', =>
  @outPorts.out.endGroup()

因此,组可以被看作是为数据包提供一些“元数据”的一种方式。例如,NoFlo's当filesystem/ReadFile将文件的内容作为数据包发送出去时,它用一个以文件路径命名的组包围它。

组对于合并异步流也非常有用。例如,webserver/Server为它收到的每个请求生成一个唯一的组标识符。如果在响应请求之前执行数据库查询或其他异步操作,则可以在编写响应之前使用这些组将结果合并回。

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

https://stackoverflow.com/questions/23519877

复制
相关文章

相似问题

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