如何映射输入文件数组?

2024-04-04

我有两个函数:一个将文件转换为 dataUrl,另一个返回结果的承诺:

fileToDataURL(file) {
  var reader = new FileReader()
  return new Promise(function (resolve, reject) {
    reader.onload = function (event) {
      resolve(event.target.result)
    }
    reader.readAsDataURL(file)
  })
}  

getDataURLs (target) {
  // target => <input type="file" id="file">      
  return Promise.all(target.files.map(fileToDataURL))
}

target.files.map 返回:TypeError: target.files.map is not a function. H

如何修改getDataUrls所以它返回一个带有 dataUrls 的数组?


function getDataURLs(target) {
  // target => <input type="file" id="file">      
  return Promise.all([...target.files].map(fileToDataURL))
}

FileList https://developer.mozilla.org/en-US/docs/Web/API/FileList不是一个Array,并且不继承自Array,但它确实实现了可迭代协议 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols,所以你可以使用扩展语法 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax将其作为数组获取。

如果您想知道如何检查类是否像FileList支持扩展语法,你可以这样做:

console.log(FileList.prototype[Symbol.iterator]);

如果返回一个函数(确实如此),那么返回的函数是生成器函数 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator通过扩展语法在类的实例上调用它。

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

如何映射输入文件数组? 的相关文章

  • Oo 任何 IDE 中的 javascript 代码补全

    你知道有什么IDE可以自动完成这种代码吗 我这里有一个 javascript 类生成器 function var core bind function method scope if method instanceof Function t
  • HTML/VBA Click 事件未触发

    这是我第一次在 StackOverflow 上发布问题 到目前为止 我已经能够通过 VBA 帮助论坛解决我的大部分问题 我的问题很简单 我有一个自动数据拉取 我需要在其中导出数据 我过去曾在这方面取得过成功 但这次略有不同 我尝试单击以生成
  • 如何使用 selenium 和 Mocha 获取 xPath() 选择的锚标记的文本

    我已经成功选择了 a 标签 我想显示锚标记的文本 但无法这样做 我正在使用 selenium mocha javascript 和 phantomJS 这是我的脚本 详细 var assert require assert var test
  • 如何在ASP.NET Webform中使用Jquery表单插件?

    我遇到了这个插件 http malsup com jquery form getting started http malsup com jquery form getting started 我想知道如何在 ASP NET WebForm
  • 使用 moment.js 检查输入日期是否为星期一

    好吧 我想检查日期是否是星期一 例如 var myDate new Date moment myDate DD MM YYYY dayIs monday 在我的国家 一周的第一天是星期一 所以 我真的想检查输入日期是否是一周的开始 我尝试使
  • 如何使用canvas.toDataURL()将画布保存为图像?

    我目前正在构建一个 HTML5 Web 应用程序 Phonegap 本机应用程序 我似乎不知道如何将画布保存为图像canvas toDataURL 有人可以帮我吗 这是代码 有什么问题吗 我的画布被命名为 canvasSignature J
  • Ember.js 处理 View 事件后转换到路由

    Setup 我有一个 Ember 应用程序 支持使用 Imgur API 上传图像 我已经有一个工作路线和模板来处理任何 Imgur ID 但我想在上传新图像后转换到此路线 使用返回的 Imgur ID 这是该应用程序的相关部分 http
  • 使用 CryptoJS 更改密钥 [重复]

    这个问题在这里已经有答案了 我正在使用 CryptoJS 来加密和解密文本 在这里 我只是获取消息并显示加密和解密消息 我使用DES算法进行加密和解密 这是我的 HTML 文件
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • 获取给定类文件的目录路径

    我遇到的代码尝试从类本身的 class 文件所在的同一目录中读取一些配置文件 File configFiles new File this getClass getResource getPath listFiles new Filenam
  • 是否有任何非轮询方式来检测 DOM 元素的大小或位置何时发生变化?

    很长一段时间以来 我一直在寻找一种方法来检测 DOM 元素的大小或位置何时发生变化 这可能是因为窗口调整了大小 或者因为向该元素添加了新的子元素 或者因为在该元素周围添加了新元素 或者因为 CSS 规则已更改 或者因为用户更改了浏览器的字体
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • 如何使JavaScript函数在Eclipse“大纲视图”中可见?

    我有这样的代码 但如果它在匿名函数中定义 则无法打开函数大纲 类没有问题 我该如何概述something2 请分享一些提示 我可以将所有函数标记为构造函数 但这是无效的方法 start of track event required deb
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • 如果数字小于 10,则显示前导零 [重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 相当于 printf string format https stackoverflow com questions 610406 javascript equivalent t
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas
  • 单击列表时使用 bootstrap Dropdown 防止下拉菜单消失

    我正在使用使用引导下拉菜单 http twitter github com bootstrap javascript html dropdowns生成下拉菜单 我想防止点击菜单时菜单消失 我已经实现了以下代码 但它不起作用 知道如何修复它吗
  • 在 GWT 中,在任何主机页标记上添加事件处理程序

    我想为任何标签添加 MouseOver 事件处理程序 举个例子 我想为旧版 HTML 页面中的每个锚点页面添加事件处理程序 继GWT指南 http code google com webtoolkit doc 1 6 DevGuideUse

随机推荐

  • 如何将Android应用程序的方向锁定为手机中的纵向和平板电脑中的横向?

    我正在开发一个 Android 应用程序 当用户旋转设备时 我不希望其方向更改为横向模式 另外 我希望锁定方向在手机上为纵向模式 在平板电脑上为横向模式 这可以实现吗 如果可以 如何实现 谢谢 您只需在以下内容中定义以下属性activity
  • 为什么 C++ 需要通过标头或语句进行前向声明,而 Java 不需要? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如果你不转发声明你的函数 Java 不会抱怨 而 C 会抱怨 我知道 C 涉及预处理 但我想了解更多 目标文件 Java 编译器依赖于
  • 替代嵌套在另一个表单中的 Ajax 上传表单

    我有一个 HTML 表单来编辑我工作地点的数据库系统中人员的详细信息 表单的一部分允许用户上传该人的照片 然而 这给我带来了麻烦 因为我试图让用户上传图片并在提交要保存的人员详细信息之前看到它已成功上传 从而使表单更加 Ajax y 给我带
  • 如何将 SketchUp 模型导出到 Three.js?

    我通过谷歌创建了一个模型SketchUp 我想将其导出到three js节省一些时间 因为我想使用SketchUp比three js 那么有人可以告诉我该怎么做吗 非常感谢 您可以从 SketcUp 导出 collada DAE 然后使用
  • 移动包含子模块的 git 工作副本

    Git 最近的一项变化改变了 git使用子模块时处理目录 而不是拥有一个 git每个子模块 现在所有内容都位于 根级别 git目录 与包括子模块的工作副本相对应的目录 然后 在每个子模块中 创建一个文件 该文件指向该子模块的新位置 git目
  • 如何在kivy项目中隐藏python代码文件和其他相关文件

    我最近在 Google Play 上发布了一个用 Python Kivy 编写的 Android 应用程序 通常 build py 脚本会将整个项目文件包装到一个文件夹中 即应用程序包文件夹 但是 如果我在安装 apk 后检查手机上这个包的
  • 为什么我们需要 crossCheckMatching 功能?

    我正在阅读很多使用特征提取 sift ecc 进行对象检测的文章 在计算两个图像上的描述符后 为了获得良好的匹配 他们使用了 crossCheckMatching 发现于样本 cpp descritpor extractor matcher
  • 如何在角度6中实现内容显示更多和显示更少

    我们有 6 个内容分区 我们还使用字符限制每个 div 我们使用 Bootstrap 4 Angular 6 版本 6 div 一些切换 div 内容打开 一些关闭 https i stack imgur com dS04r jpg这个案例
  • 如何在 AppKit 上的自定义 SwiftUI 表单中右对齐项目标签?

    我有以下可可形式 struct Canvas PreviewProvider static var previews some View VStack HStack alignment firstTextBaseline Text Endp
  • 如何访问React路由器中的历史堆栈?

    我正在尝试访问反应路由器的历史堆栈 这是我想做的 我使用react js 和react router 创建一个板 如果用户单击板上的列表之一 则会转到详细信息页面 假设用户点击列表中 id 为 3 的文章 react router 会转到
  • 如何让 CameraX 预览在拍照时冻结?

    我的自定义 CameraX 流程如下 打开相机预览 实时 点击按钮拍照 单击该按钮时有一个过程 将路径转换为位图 旋转图像 自动裁剪图像 保存到设备中 运行所有进程并成功后 将图像发送到其他Fragment并将其显示为glide 问题是何时
  • 如何更改所有 UITableViewCell 的背景颜色

    我有一个非常简单的视图控制器 它只有一个UITableView and a UIButton 当点击按钮时 我想改变所有的背景颜色UITableViewCells变为绿色 假设有一些单元格不可见 我使用此循环来完成我需要的操作 IBActi
  • 使用 SQLAlchemy 计算具有条件的行数

    我有一个像这样的 sqlite 表 其中有 3 列 我想要 计算 user id 1 的行数 SQLAlchemy 可以做到这一点吗 class UserImage db Model id db Column db Integer prim
  • mac OSX 10.8.3 文件系统上的 gae 本地数据存储在哪里?

    我已经尝试了这些帖子中的所有建议 有谁知道 Mac OS X 的 Google App Engine 本地数据存储文件位于哪里 https stackoverflow com questions 15753914 does anyone k
  • 添加动态 formControl 时,所有必需输入字段的文本颜色更改为无效颜色

    每当我通过按钮单击添加动态 formControl 时 所需的所有输入字段都会将颜色更改为无效 红色 我的期望是 只有当输入被 触摸 时 表单字段才会更改为无效颜色 并且仅在特定的非全部 我不知道为什么会发生这种情况 我刚刚接触有角度和有角
  • 在 Silverlight 中检测控件的焦点

    有什么方法可以判断某个控件 特别是 System Windows Controls TextBox 是否在 Silverlight 中获得焦点 我正在寻找类似以下内容的内容 您会在常规 Net 应用程序中看到的内容 textBox Focu
  • Swift 3 中的 NSFastEnumeration

    我正在尝试迭代一个对象CMSensorDataList返回的类CMSensorRecorder accelerometerData from to 该类确认NSFastEnumeration协议 所以我尝试了中提到的技巧https stac
  • JUnit 运行测试命令行

    我有以下结构 lib junit 4 10 jar tests Tester java tests Tester class build jar jar file jar 测试器属于包测试 我可以使用编译测试 javac cp build
  • App Engine SDK DevServer 只读模式?

    有没有办法以只读模式运行应用程序引擎开发服务器 以模拟 Google 的定期维护 从而将数据存储区置于只读模式 在定期维护期间优雅降级 http code google com appengine docs python howto mai
  • 如何映射输入文件数组?

    我有两个函数 一个将文件转换为 dataUrl 另一个返回结果的承诺 fileToDataURL file var reader new FileReader return new Promise function resolve reje