You can see more here.
package tutorial.webapp
import scala.scalajs.js.JSApp
import scala.scalajs.js.annotation.JSExport
/**
* Created by IDEA on 29/10/15.
*/
import rx._
object TestRx extends JSApp {
def main: Unit = {
demo
observe
listInVar
omg
nest1
}
def nest1: Unit = {
val a = Var(1)
val b = Rx(
(Rx(a() * 2), Rx(math.random))
)
val r = b()._2()
println("random number: ", r)
val r1 = b()._2()
println("random number: ", r1)
a() = 2
println("First nested", b()._1())
println("Second nested", b()._2())
}
def demo: Unit = {
val a = Var(1)
val b = Var(2)
val c = Rx {
a() + b()
}
println(c())
a() = 4
println(c())
}
def observe: Unit = {
val x1: Var[Int] = Var(1)
var count = 0
val x1Obs = Obs(x1, skipInitial = true) {
count = x1() + 1
println("count: " + count)
}
x1() = 3
x1Obs.kill()
x1() = 5
}
def listInVar: Unit = {
val x2 = Var(List(1, 2, 3))
val x2Rx = Rx(x2().sum)
val x2RxObs = Obs(x2Rx) {
println("x2 sum: " + x2Rx())
}
x2() ++= List(4)
x2() ++= List(5, 6)
}
def omg: Unit = {
val a = Var(Seq(1, 2, 3))
val b = Var(3)
val c = Rx{ b() +: a() }
val d = Rx{ c().map("omg" * _) }
val e = Var("wtf")
val f = Rx{ (d() :+ e()).mkString }
println(f()) // "omgomgomgomgomgomgomgomgomgwtf"
a() = Nil
println(f()) // "omgomgomgwtf"
e() = "wtfbbq"
println(f()) // "omgomgomgwtfbbq"
}
}
0 comments:
Post a Comment