我希望能够以编程方式组成一个链,以便以后包含在另一个链中。我知道它可能会那么难,但我似乎错过了一些东西。
理论上,我应该能够做到这样的事情:
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()
但是根据documentation,我必须传递一个actionBuilders列表和下一个动作,暗示不可能构建一个空链,然后在一个单独的语句中构建它。
有没有办法让我的.foreach
循环以我打算工作的方式工作?
答案 0 :(得分:0)
答案是
import bootstrap._
然后
var c = bootstrap
但是必须修改循环,如下所示:
List( 1, 2, 3 ).foreach( x => {
c = c.exec( ... )
})
原因与你必须做链接的事实有关。当你有
foo()
.bar()
.blip()
整个表达式的结果是来自blip
而不是foo
的返回值 - 当你想到它时很明显 - 所以我们附加的变量必须随着节点的移动而移动附接。
我希望除了我之外,某个地方的人能够看到这个例子。