0

我希望能够以编程方式组成一个链,以便以后包含在另一个链中。我知道这不会那么难,但我似乎错过了一些东西。

理论上,我应该能够做这样的事情:

var c = ??? // the part I can't figure out
List( 1, 2, 3 ).foreach {
  c.exec( http("Fetch something").get("..." + _ ) )
}

也就是说,我希望能够创建一个链,然后在循环中填充该链,而不是在源代码中对链进行硬编码。

我认为,我最大的困难是知道分配给c. 我以为它应该是

var c = new ChainBuilder()

但根据文档,我必须向它传递一个 actionBuilders 列表和下一个操作,这意味着不可能构建一个空链,然后在单独的语句中构建它。

有什么方法可以让我的.foreach循环按照我想要的方式工作吗?

4

1 回答 1

0

答案是

import bootstrap._

接着

var c = bootstrap

但是必须修改循环,如下所示:

List( 1, 2, 3 ).foreach( x => {
  c = c.exec( ... )
})

原因与你必须做链接所做的事情有关。当你有

foo()
.bar()
.blip()

整个表达式的结果是返回值 fromblip而不是foo- 当你考虑它时很明显 - 所以我们附加到的变量必须随着节点的附加而移动。

我希望除了我之外的某个地方的某个人在看到这个例子时会发现价值。

于 2014-07-03T20:41:30.787 回答