我有时会发现自己处于一种情况,即我有一些Stream[X]
,而且function X => Future Y
我想要将它结合起来Future[Stream[Y]]
,而我似乎无法找到办法.例如,我有
val x = (1 until 10).toStream
def toFutureString(value : Integer) = Future(value toString)
val result : Future[Stream[String]] = ???
Run Code Online (Sandbox Code Playgroud)
我试过了
val result = Future.Traverse(x, toFutureString)
Run Code Online (Sandbox Code Playgroud)
它给出了正确的结果,但似乎在返回Future之前消耗了整个流,这或多或少地击败了purpse
我试过了
val result = x.flatMap(toFutureString)
Run Code Online (Sandbox Code Playgroud)
但那不能编译 type mismatch; found : scala.concurrent.Future[String] required: scala.collection.GenTraversableOnce[?]
val result = x.map(toFutureString)
Run Code Online (Sandbox Code Playgroud)
返回有点奇怪和无用 Stream[Future[String]]
我该怎么做才能解决问题?
编辑:我没有被困在一个Stream
,我对同样的操作同样满意Iterator
,只要在开始处理头部之前它不会阻止评估所有项目
Edit2:我不是100%确定Future.Traverse构造在返回Future [Stream]之前需要遍历整个流,但我认为确实如此.如果没有,那本身就是一个很好的答案.
编辑3:我也不需要结果顺序,我很好用流或迭代器返回任何顺序.
我想将dbContext的生命周期与会话的生命周期联系起来,例如 - 能够在多个请求上提交或放弃对dbcontext上的一组突变的更改.
有没有其他(更好?)方法来实现这一目标?如果不是,那么创建和处理上下文的合适机制是什么?我正在考虑在会话结束时使用清理的静态哈希表,但也许我正在做它所有错误.我也在考虑只关注那些必须在多个请求上工作的上下文,并保持其余的每个操作的想法.有什么建议?
我正在尝试将一些参数传递给XSLT样式表.我遵循了这个例子:通过.NET将参数传递给XSLT样式表.
但我的转换页面没有正确显示值.
这是我的C#代码.我不得不添加自定义函数来执行某些算术,因为Visual Studio 2010不使用XSLT 2.0.
var args = new XsltArgumentList();
args.AddExtensionObject("urn:XslFunctionExtensions", new XslFunctionExtensions());
args.AddParam("processingId", string.Empty, processingId);
var myXPathDoc = new XPathDocument(claimDataStream);
var xslCompiledTransformation = new XslCompiledTransform(true);
// XSLT File
xslCompiledTransformation.Load(xmlReader);
// HTML File
using (var xmlTextWriter = new XmlTextWriter(outputFile, null))
{
xslCompiledTransformation.Transform(myXPathDoc, args, xmlTextWriter);
}
Run Code Online (Sandbox Code Playgroud)
这是我的XSLT:
<xsl:template match="/">
<xsl:param name="processingId"></xsl:param>
..HTML..
<xsl:value-of select="$processingId"/>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
我正在尝试用期货编写一个规范,我不确定我应该如何使用这个Futures
特性.我必须传递whenReady
一个FutureConcept
,但我找不到我应该如何构建一个Future
.文件内容如下:
为了使whenReady更广泛适用,它接受的未来类型是FutureConcept [T],其中T是未来承诺的价值类型.将future传递给whenReady需要从您希望传递的未来类型(建模类型)到FutureConcept [T]的隐式转换.
据我所知,我必须在a Future
和a 之间写一个隐式转换FutureConcept
(这对我来说似乎不对,因为它似乎应该是样板文件,但它是我唯一可以做到的).我无法弄清楚如何做到这一点,FutureConcept的文档很方便地告诉我
有关此特征为期货测试提供的语法的详细信息,请参阅特征期货的文档.
让我走完整圈.我做的最简单的例子是
import scala.concurrent._
import scala.concurrent.ExecutionContext.Implicits.global
import org.scalatest.WordSpecLike
import org.scalatest.concurrent._
class FutureSpec extends WordSpecLike with Futures {
"A future" must {
"be a valid argument for whenReady" in {
val fut = future { 42 }
whenReady(fut) { res => s should be 42 }
}
}
}
Run Code Online (Sandbox Code Playgroud)
那不编译
- 类型不匹配; 发现:scala.concurrent.Future [Int] required:FutureSpec.this.FutureConcept [?]
- ';' 预期,但发现整数字面量.
我应该做些什么呢?
Visual Studio 2017附带Nuget 4.0.0.但是,它没有放在路径上.我在哪里可以找到使用CLI的nuget可执行文件?
我对vb.net很新,而且windows形成了一个整体的开发,所以这可能都是非常基本的,但是这里有.
我想从其他形式打开一个新表单,并将一些选定对象从该表单上的控件传递给新表单.我认为,这样做的明智方法是作为表单构造函数的参数.现在我知道visual studio GUI为我的表单创建了部分类,它包含了我可以在设计器中拖动到那里的属性.我假设它也拥有默认构造函数.因为它可能会做各种初始化表单所需的东西,我想我应该从我的自定义构造函数ala中调用它
public sub new(byval my_parameter as Foo)
Me.new()
Me.my_parameter = my_parameter
do_some_initialisation()
end sub
Run Code Online (Sandbox Code Playgroud)
显然不是这样,因为它找不到默认的构造函数.问题是,visual studio不遗余力地阻止我看到生成的构造函数,所以我知道如何访问它.这让我相信我实际上做错了,应该开始走上一条不同的道路,因为你被迫进入的道路通常是明智的做法,我通常会发现它太晚了.
那我该怎么做这样的事呢?
System.Web.Mail
和之间有什么区别System.Net.Mail
?
我有一个多项目构建,我正在尝试将带有sbt-web生成的资产的jar添加到启动脚本的类路径中
我感兴趣的项目叫做website
.
输入show website/web-assets:packageBin
sbt会创建并显示带有资产的jar.我试过投入(managedClasspath in website) += website/web-assets:packageBin
,但是没有编译:
path/to/build.sbt:58:error:value /不是sbt.Project的成员
网站中的managedClasspath + = website/web-assets:packageBin
如何在运行stage任务时创建带有资源的jar,并将其放在启动脚本的类路径中
在 Azure DevOps 中,我想使用 dotnet 核心 CLI 任务来推送带有 --skip-duplicate 选项集的包。我怎么做?
我试图设置arguments: --skip-duplicate
,但这并没有反映在执行的命令中。
我尝试使用 自定义命令custom: nuget push
,但这表明 nuget push 不是有效的自定义命令。
如何使 DotNetCorCLI@2 任务执行dotnet nuget push <pathspec> --skip-duplicate
(还将--source
选项设置为内部包源)
在另一个问题中,我最终得到了一个类型的值A => => B
.这是什么意思?
我总是被理解=> A
为实际上并不是一个类型,但是可以声明一个参数可以用于逐个语调的语义.但如果它不是一种类型,那A => => B
意味着什么?