我希望,用户能够花一个时间回击,能够取消。 与此类似:
def main: F[Unit] =
for
cancel <- runTimer(callback, 5.seconds)
shouldCancel <- askUser
_ <- cancel.whenA(shouldCancel)
yield ()
我怎么能以FS2的类别来做?
我希望,用户能够花一个时间回击,能够取消。 与此类似:
def main: F[Unit] =
for
cancel <- runTimer(callback, 5.seconds)
shouldCancel <- askUser
_ <- cancel.whenA(shouldCancel)
yield ()
我怎么能以FS2的类别来做?
由于cats-effect在解决一致问题时具有非常强的威力,你需要的守则实际上非常简单:
def runTimer(
callback: IO[Unit],
delay: Duration,
cancel: IO[Unit]
): IO[Unit] =
IO.race(
IO.sleep(delay) >> callback.uncancelable,
cancel
).void
主要方面如下:
IO.sleep
to delay the execution of the callback.uncancelable
to make the callback uncancelable.IO.race
to run both the delayed callback and the cancel concurrently. If the cancel
completes before the delay, the race
will cancel the execution of the callback.您可以改进这项工作,以确保<代码>cancel>可取消<编码> 查询背书/代码>,但允许在上一级取消整个<代码><<>race>/code>。
I have 4 elements:List[List[Object]] (Objects are different in each element) that I want to zip so that I can have a List[List[obj1],List[obj2],List[obj3],List[obj4]] I tried to zip them and I ...
I m impressed with Twitter and investigating to use Scala for a new large scale web project with Hibernate and Wicket. What do you think about Scala, and should I use it instead of Java? EDIT: And, ...
I m going to work on comparing around 300 binary files using Scala, bytes-by-bytes, 4MB each. However, judging from what I ve already done, processing 15 files at the same time using java....
The scala type Nothing represents (as I understand it) the bottom of the type hierarchy, also denoted by the symbol ⊥. That is, Nothing is a sub-type of any given type. The requirement for a Nothing ...
When I execute a Scala script from the command line, a directory named "tmp" is created in my home directory. It is always empty, so I simply deleted it without any apparent problem. Of course, when I ...
Is it possible to include a jar file run running the Scala interpreter? My code is working when I compile from scalac: scalac script.scala -classpath *.jar But I would like to be able to include a ...
I am trying to use Scala s capabilty of running a class with either JUnit or ScalaTest. I took the example given for FeatureSpec and combined it with the example using JUnitSuite. I am having a ...
There are various answers on Stack Overflow which explain the conditions under which tail recursion is possible in Scala. I understand the limitations and how and where I can take advantage of tail ...