小编sjr*_*jrd的帖子

什么是ScalaJS在n毫秒时间内发生事件的方式?

是否使用ScalaJS DOM并使用以下内容?

org.scalajs.dom.setTimeout( () => {
  // Work
}, 1000)
Run Code Online (Sandbox Code Playgroud)

在ScalaJS的上下文中是否有其他方式或更好的方法?

scala.js

18
推荐指数
1
解决办法
2415
查看次数

Scala从onComplete返回值

如何在Scala中构造onComplete以这种方式操作:

图.1

{ 
  var x; 
  if(result.isFailure){
    x = foo() // foo is a future
  }

  if(result.isSuccess){
    x = 5
  }  
  bar(x)
}
Run Code Online (Sandbox Code Playgroud)

我以为我可以这样做:

图2

var x = foo onComplete {
  case Success(x) => 5
  case Failure(t) => foo() //foo is a future
}
bar(x)
Run Code Online (Sandbox Code Playgroud)

但是onComplete,onFailure和onSuccess都有Unit返回类型,

onComplete[U](f: (Try[T]) ? U)(implicit executor: ExecutionContext): Unit
onSuccess[U](pf: PartialFunction[T, U])(implicit executor: ExecutionContext): Unit
onFailure[U](pf: PartialFunction[Throwable, U])(implicit executor: ExecutionContext): Unit
Run Code Online (Sandbox Code Playgroud)

如何在不使用var的情况下实现二维形式?

scala

15
推荐指数
2
解决办法
9219
查看次数

可以编译Scala程序但不能运行它们

我能够在终端使用scalac编译scala程序,但是我得到了警告.

Charless-Macintosh:src Charles$ scalac hello.scala
Charless-Macintosh:src Charles$ scala HelloWorld
No such file or class on classpath: HelloWorld
Run Code Online (Sandbox Code Playgroud)

这与.profilescala有关吗?我对发生的事情感到很困惑.非常感谢

scala compilation

11
推荐指数
1
解决办法
5317
查看次数

在ScalaJs sbt构建中,使用webjars而不是npm或bower与'提供'是否有任何优势?

几个月前,当我第一次发现webJars时,我非常怀疑,鉴于某些构建/构建系统的巨大复杂性以及js文件发布的频率,它将成为处理客户端依赖关系的可行方式.第二个问题当然不是很有根据,但是我在第一个问题上得到了证明,在花了差不多36个小时之后,现在徒劳地试图让10个scss/css/less类型的webJars和8个JS webJars生活在一个jsDependencies屋檐下.

我发现当你达到JS依赖3,4或5时,你开始进入一个荒谬的timekill循环:

1."哦,没有!fastOptJS失败了,因为有一些随机文件也被命名为webjar中的依赖项!"

[trace] Stack trace suppressed: run last client/compile:resolvedJSDependencies for the full output.
[error] (client/compile:resolvedJSDependencies) org.scalajs.core.tools.jsdep.JSLibResolveException: Some references to JS libraries could not be resolved:
[error] - Ambiguous reference to a JS library: bootstrap.min.js
[error]   Possible paths found on the classpath:
[error]   - META-INF/resources/webjars/bootstrap/3.3.6/js/bootstrap.min.js
[error]   - META-INF/resources/webjars/bootstrap3-dialog/1.34.4/examples/assets/bootstrap/js/bootstrap.min.js
[error]   originating from: client:compile, client:compile, client:compile, client:compile
[error] - Ambiguous reference to a JS library: bootstrap.js
[error]   Possible paths found on the classpath:
[error]   - …
Run Code Online (Sandbox Code Playgroud)

sbt node.js scala.js sbt-web

11
推荐指数
1
解决办法
783
查看次数

获得与for..in循环相同的结果,没有任何for..in循环

(让我们假设有一个很好的理由希望如此.如果你想阅读正当理由,请参阅问题的结尾.)

我想获得与for in循环相同的结果,但使用该语言结构.结果我的意思是只有一个属性名称数组(我不需要重现在迭代时修改对象时会发生的行为).

要将问题放入代码中,我想在没有以下情况下实现此功能for in:

function getPropertiesOf(obj) {
  var props = [];
  for (var prop in obj)
    props.push(prop);
  return props;
}
Run Code Online (Sandbox Code Playgroud)

从我的ECMAScript的5.1规格大约的理解在声明中对Object.keys方法,似乎下面的实现应该是正确的:

function getPropertiesOf(obj) {
  var props = [];
  var alreadySeen = {};

  // Handle primitive types
  if (obj === null || obj === undefined)
    return props;
  obj = Object(obj);

  // For each object in the prototype chain:
  while (obj !== null) {
    // Add own enumerable properties …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-5

6
推荐指数
1
解决办法
115
查看次数

spring Boot - "status":405,"error":"Method not Allowed"

我使用该指南创建了一个简单的Spring Boot REST服务,并在POST时遇到以下错误http://localhost:8080/greeting

- "status":405,"error":"Method Not Allowed","exception":"org.springframework.web.HttpRequestMethodNotSupportedException","message":"不支持请求方法'POST'",

我没有找到任何有关如何解决错误的信息.我正在使用版本1.3.2.RELEASE并使用启动Tomcat mvn spring-boot:run.

该指南说默认允许所有HTTP方法.那么为什么它会回应不支持POST?

在POST到此URL时,如何让Spring调用控制器方法?

java spring-boot

5
推荐指数
1
解决办法
4万
查看次数

如何在scalajs-react项目中使用sbt-scalajs插件排除javascript依赖项?

如何使用sbt-scalajs插件排除scalajs依赖项?

我正在尝试导入以下库

"org.webjars.bower" % "react-bootstrap-datetimepicker" % "0.0.14" / "react-bootstrap-datetimepicker.js"
Run Code Online (Sandbox Code Playgroud)

但是这个库正在下载已经存在于我的项目中的其他依赖项("react"和"react-bootstrap"),我正在进行版本冲突.

我尝试过使用exclude函数

"org.webjars.bower" % "react-bootstrap-datetimepicker" % "0.0.14" exclude ("org.webjars.bower", "react") 
Run Code Online (Sandbox Code Playgroud)

但这不允许我在命令中附加/"react-bootstrap-datetimepicker.js".

我得到的例外是:

org.scalajs.core.tools.classpath.JSLibResolveException: Some references to JS libraries could not be resolved:
- Ambiguous reference to a JS library: react-bootstrap.js
  Possible paths found on the classpath:
  - META-INF/resources/webjars/react-bootstrap/0.16.1/react-bootstrap.js
  - META-INF/resources/webjars/react-bootstrap/0.23.7/react-bootstrap.js
  originating from: adminJS:compile

    at org.scalajs.core.tools.classpath.PartialClasspath.resolveAllResourceNames(PartialClasspath.scala:137)
    at org.scalajs.core.tools.classpath.PartialClasspath.resolveDependencies(PartialClasspath.scala:80)
    at org.scalajs.core.tools.classpath.PartialClasspath.resolve(PartialClasspath.scala:64)
    at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$11.apply(ScalaJSPluginInternal.scala:140)
    at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$11.apply(ScalaJSPluginInternal.scala:137)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
    at sbt.std.Transform$$anon$4.work(System.scala:63)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.Execute.work(Execute.scala:235)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226) …
Run Code Online (Sandbox Code Playgroud)

sbt scala.js scalajs-react

4
推荐指数
1
解决办法
541
查看次数

scala.js.dom ajax.post,错误状态时出错

我使用scala.js(0.6.5)和scala-js-dom(0.8.2)并且我有一些带有ajax.post的奇怪的pb,当我收到错误状态(这里是409).
浏览器控制台显示错误消息,但是从我的scala代码中,我无法访问状态代码和返回的消息.

这是我用来发送POST的代码:

val request = Ajax.post(
  url,
  data = postData,
  headers = bsHeaders)

request.map(xhr => {
  log.debug("response text: " + xhr.responseText)

  if (xhr.status == 201) {
    try {
      val loc = xhr.getResponseHeader("Location")
      if(loc == locHeaderResp) {
        loc
      } else {
        log.error(s"Location header invalid: ${loc}")
      }
    } catch {
      case e:Exception => {
        log.error("Couldn't read 'Location' header " + e.getMessage)
        log.debug("List of headers: " + xhr.getAllResponseHeaders())
        ""
      }
    }
  } else if (xhr.status == 409) {
    log.error("" + xhr.responseText)
    log.error(s"${xhr.responseText}") …
Run Code Online (Sandbox Code Playgroud)

scala.js

3
推荐指数
1
解决办法
987
查看次数

Scala.js会生产小捆吗?

虽然我喜欢Scala这个语言,而Scala.js就是这个项目,但即使在fullOptJS模式下,我对最终JS包的大小也有点偏差.

我迫切需要创建一个在浏览器中使用的小型库.> 150kb是一个很大的问题,可以说像BuckleScript/ReasonML这样的工具可以保证快速执行和微小的捆绑.

在可预见的未来,Scala.js会开始生产更小的捆绑吗?

scala.js scalajs-bundler

3
推荐指数
1
解决办法
426
查看次数

Scala.js:如何将 Seq[T] 转换为 js.Array[T]

我开始使用 scala.js,我想将 Seq 转换为 js.Array。我有这个示例代码:

import scala.scalajs.js
import scala.scalajs.js.annotation._

@JSExportTopLevel("Seqs")
object JsSeqs {

  @JSExport
  def sum(xs: js.Array[Double], ys: js.Array[Double]): js.Array[Double] = {
    val s = Seqs.sum(xs.toSeq, ys.toSeq)
    //how to parse Seq[Double] to js.Array[Double] ???
  }

}

object Seqs {

  def sum(xs: Seq[Double], ys: Seq[Double]): Seq[Double] = {
    xs.zip(ys).map(x => x._1 + x._2)
  }

}
Run Code Online (Sandbox Code Playgroud)

怎么做?

scala scala.js

3
推荐指数
1
解决办法
575
查看次数