如何使用 scala.js 读取文本文件?

2024-01-04

基本上我想弄清楚我需要传递什么onload() method

def selectedFile(e: ReactEventI) = {
  val reader = new dom.FileReader()
  reader.readAsText(e.currentTarget.files.item(0))
  reader.onload(
  ) 
}

惯用的 Scala,带有错误处理

我不喜欢使用回调,而是更喜欢使用模式匹配和map像这样:

def printFileContent(file: dom.File) =
  readTextFile(file).map {
    case Right(fileContent) => println(s"File content: $fileContent")
    case Left(error) => println(s"Could not read file ${file.name}. Error: $error")
  }

Code:

/** In the future, returns either the file's content or an error,
    if something went wrong */
def readTextFile(fileToRead: dom.File): Future[Either[DOMError, String]] = {

  // Used to create the Future containing either the file content or an error
  val promisedErrorOrContent = Promise[Either[DOMError, String]]

  val reader = new FileReader()
  reader.readAsText(fileToRead, "UTF-8")

  reader.onload = (_: UIEvent) => {
    val resultAsString = s"${reader.result}"
    promisedErrorOrContent.success(Right(resultAsString))
  }
  reader.onerror = (_: Event) => promisedErrorOrContent.success(Left(reader.error))

  promisedErrorOrContent.future
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 scala.js 读取文本文件? 的相关文章

  • 什么是 Java 8“视图”?

    我正在观看 Paul Philips 的演讲 http www youtube com watch v TS1lpKBMkgg http www youtube com watch v TS1lpKBMkgg 在 12 48 比较 Scal
  • Spark:替换嵌套列中的空值

    我想更换所有n a以下数据框中的值unknown 它可以是scalar or complex nested column 如果它是一个StructField column我可以循环遍历列并替换n a using WithColumn 但我希
  • Scala repl 抛出错误

    当我打字时scala在终端上启动 repl 它会抛出此错误 scala gt init error error while loading AnnotatedElement class file usr lib jvm java 8 ora
  • 用惯用的 Scala 更新大型数据结构

    我已经尝试 Scala 一段时间了 并且经常遇到支持不可变数据结构的建议 但是当你有一个像这样的数据结构时3D 场景图 大型神经网络或任何具有大量需要频繁更新的对象的东西 对场景中的对象进行动画处理 训练神经网络 这似乎是 运行时效率极低
  • 在scala / play框架中构建Json文件

    我正在使用 Play 框架和 Scala 我需要提供一个如下所示的输入 id node37 name 3 7 data children 如何使用 json 获取该格式 以下是 Play 框架网站上的示例 val JsonObject Js
  • 多个 scala 库导致 intellij 出错?

    我正在使用 intellij 14 和 scala 2 11 6 使用 homebrew 安装并使用符号链接 ln s usr local Cellar scala 2 11 6 libexec src usr local Cellar s
  • Scala 2.9 无法在 Windows XP 上运行“hello world”示例

    我正在尝试在 Windows XP 上使用 scala 2 9 1 Final 运行 HelloWorld 示例 object HelloWorld extends App println Hello World 文件另存为Hello sc
  • 模拟 BlazeClientBuilder[IO] 以返回模拟客户端[IO]

    我正在使用BlazeClientBuilder IO resource方法得到Client IO 现在 我想模拟客户端进行单元测试 但不知道该怎么做 有没有一个好的方法来嘲笑这个 我会怎么做 class ExternalCall val r
  • 在 Spark MLlib 上使用 Java 中的 Breeze

    在尝试从Java使用MLlib时 使用微风矩阵运算的正确方法是什么 例如scala 中的乘法很简单 matrix vector 相应的功能在Java中是如何表达的 有一些方法 例如 colon times 可以通过正确的方式调用 breez
  • Play框架:单属性案例类的JSON读取

    我正在尝试为包含单个属性的案例类创建隐式 JSON Reads 但收到错误 Reads Nothing 不符合预期类型 这是代码 import play api libs functional syntax import play api
  • Scala:什么是 CompactBuffer?

    我试图弄清楚 CompactBuffer 的含义 和迭代器一样吗 请解释其中的差异 根据 Spark 的文档 它是 ArrayBuffer 的替代方案 可以提供更好的性能 因为它分配的内存更少 以下是 CompactBuffer 类文档的摘
  • 使用 Scala 获取 Spark 数据集中最新时间戳对应的行

    我对 Spark 和 Scala 比较陌生 我有一个具有以下格式的数据框 Col1 Col2 Col3 Col 4 Col 5 Col TS Col 7 1234 AAAA 1111 afsdf ewqre 1970 01 01 00 00
  • 理解 Scala FP 库

    只是为了让那些想要开始使用 Scala FP 库 在纯 FP 方面变得更好的人快速清晰地了解 有人能澄清猫和猫效应 猫效应 IO 之间的区别 关系吗 最重要的是 齐奥和莫尼克斯对此有何看法 最后 与 ScalaZ 7 8 有何关系 到目前为
  • Scala中有类似Java Stream的“peek”操作吗?

    在Java中你可以调用peek x gt println x 在 Stream 上 它将对每个元素执行操作并返回原始流 这与 foreach 不同 foreach 是 Unit Scala 中是否有类似的东西 最好是适用于所有 Monady
  • andThen 类型不匹配的 Scala 链接函数

    我有一堆函数可以清理文本并将它们分成单词 最小的例子 val txt Mary had a little nlamb val stopwords Seq a def clean text String String text replace
  • Java 8 Stream,获取头部和尾部

    Java 8 引入了Stream http download java net jdk8 docs api java util stream Stream html类似于 Scala 的类Stream http www scala lang
  • 解决“Show”类型类实例的隐式问题

    我正在努力使Gender实施Show类型类 scala gt trait Gender extends Show Gender defined trait Gender scala gt case object Male extends G
  • Akka-Streams 收集数据(Source -> Flow -> Flow (collect) -> Sink)

    我对 Scala 和 Akka 完全陌生 我有一个简单的 RunnableFlow Source gt Flow do some transformation gt Sink runForeach 现在我想要这样的东西 Source gt
  • 应对失败的“未来”

    给出以下两种方法 def f Future Int Future 10 def g Future Int Future 5 我想把它们写成 scala gt import scala concurrent Future import sca
  • Scala Spark 包含与不包含

    我可以使用 contains 过滤 RDD 中的元组 如下所示 但是使用 不包含 来过滤 RDD 又如何呢 val rdd2 rdd1 filter x gt x 1 contains 我找不到这个的语法 假设这是可能的并且我没有使用Dat

随机推荐

  • 仅跟踪嵌套 div 标签中悬停子元素的鼠标移动

    我有一个可以有 n 个嵌套 div 标签的环境 我必须仅在子 div 中跟踪鼠标的鼠标移动时刻 我有以下代码 结果显示在列表中 Problem 如果我附加更多子 div 鼠标移动也会跟踪所有父级 div 我想要的是 仅获取鼠标悬停区域的鼠标
  • 如何将日期构建附加到 gradle 上的 versionNameSuffix

    我正在使用 Android Studio 我需要在后面附加一个后缀versionNameSuffix在我的安卓设备上构建 gradle文件 我有三种不同的构建类型 我只需将日期时间附加到我的 测试版 版本中 我的实际文件是 defaultC
  • 为什么空格会影响 ruby​​ 函数调用?

    我收到此代码的语法错误 render json what gt created whatCreated gt thing htmlOutput gt render to string partial some partial 但使用这段代码
  • 使用 Yfinance 获取市值数据

    我试图使用 yfinance 获取股票的市值数据 这是我的代码 import yfinance as yf import numpy as np from pandas datareader import data import panda
  • 无法执行 HTTP 请求:Flink 中等待来自池的连接超时

    我正在研究一个将一些文件上传到 s3 存储桶的应用程序稍后 它从 s3 存储桶读取文件并将其推送到我的数据库 我在用着弗林克1 4 2 and fs s3a API用于从 s3 存储桶读取和写入文件 将文件上传到 s3 存储桶工作正常 没有
  • Jquery 表单插件还是 Jquery 序列化?

    我想知道有什么优点jQuery 表单插件 http jquery malsup com form getting started已经结束了序列化 http api jquery com serializeArray 如果我选择使用表单插件
  • jquery datepicker突出显示假期

    我正在尝试制作一个 jquery 日期选择器日历 它会突出显示假期 并在日期选择器上的日期悬停时将假期名称作为工具提示 假期日期来自 php 文件 holidays php 我的问题是 我似乎无法突出显示所有假期 它只突出显示一个日期 更具
  • 动画旋转 UIImageView

    我想旋转一个UIImageView左 右大约 10 度 但有一个平滑的动画 而不是我看到的突然转向 player transform CGAffineTransformMakeRotation angle UIView beginAnima
  • 如何在 IntelliJ IDEA 中多次运行同一个项目?

    我正在使用 IntelliJ IDEA 开发应用程序的客户端 为了调试我需要运行多个客户端 我想使用 IntelliJ IDEA 不可能在不同的窗口中运行相同的项目 那么如何运行多个客户端进行调试呢 You can 运行或调试 https
  • 如何在 php 中使用 C modf 函数?

    好像没有一个吧 使用 PHP 的fmod http php net manual en function fmod php
  • Redis 中的 AOF 和 RDB 备份

    这个问题是关于Redis持久化的 我使用 Redis 作为社交网站的 快速后端 这是设置的单个服务器 我一直在稳步地将 PostgreSQL 的职责转移到 Redis 目前在etc redis redis conf 追加设置设置为appen
  • SoundCloud,通过 api 下载或流式传输文件

    我尝试使用 download url 从 soundcloud 获取文件 我收到 重定向 或 401 未经授权 如何将其下载 流式传输到客户端 thanks 如果您收到 401 响应 那么您应该包括您的client id在请求中 它也可能是
  • 将文本文件嵌入到可以使用 fopen 访问的 exe 中

    我想将包含一些数据的文本文件嵌入到我的程序中 我们称之为 data txt 该文本文件通常加载一个函数 该函数需要文本文件的文件名作为输入 并最终使用 fopen 调用打开 FILE name fopen data txt 我无法真正更改此
  • 通过管道的 gnuplot C++ 接口 - 无法打开 wgnuplot

    我正在尝试从我的 C 程序中在 gnuplot 中实时绘制图形 我已经安装了 gnuplot 4 6 并且能够打开 gnuplot exe 并绘制图形 但是我无法通过管道打开应用程序 这是我使用过的代码 include
  • 尝试使用 PUT 将 PDF 作为 Blob 上传到 S3 存储桶时禁止 403

    我正在尝试做什么 从浏览器客户端上传 PDF 文件 而不会暴露任何凭据或任何令人讨厌的内容 基于this https github com jbesw askjames s3uploader 我以为可以做到 但对我来说似乎不起作用 前提是
  • 在 Java 中在屏幕上绘图

    我想用 Java 创建一个帮助应用程序 其行为如下 每当通过全局快捷方式调用时 它都可以在屏幕上绘制一些文本 不是在其自己的应用程序窗口上 而是在屏幕顶部 类似的帖子是here https stackoverflow com questio
  • 如何引发张量流内存不足错误的异常?

    我正在使用以下命令运行几个张量流推理sess run 在一个循环中 碰巧有些推理对我的 GPU 来说太重了 我收到如下错误 2019 05 23 15 37 49 582272 E tensorflow core common runtim
  • 在 Selenium 中,如何关闭日志记录?

    我正在使用以下方法 set browser log level off 但我的日志级别继续包含信息 当我的测试输入登录密码时 我试图抑制日志记录和 最后 4 个命令 显示 http release seleniumhq org seleni
  • Google Apps Marketplace (GAMv2) 的设置网址不会重定向

    我已经为 Google Apps Marketplace GAMv2 创建了一个测试列表 并指定了一个设置网址 使用 测试安装流程 按钮进行测试时 会弹出授权屏幕 单击 接受 按钮会将我带到一个弹出窗口 确认已添加应用程序 第二个弹出窗口上
  • 如何使用 scala.js 读取文本文件?

    基本上我想弄清楚我需要传递什么onload method def selectedFile e ReactEventI val reader new dom FileReader reader readAsText e currentTar