javascript - 使用 FileReader 时如何在 typescript 中使用回调函数?角 5
问题描述
我在尝试将承诺/回调应用于我的 TypeScript 函数时遇到了一些困难。
我需要收集 reader.onloadend 的结果并将其发送到我的 nodejs express 后端(使用服务),但我能够做到这一点的唯一方法是通过 setTimeout,我很确定如果我可以通过使用来做到这一点setTimeout,我也可以通过使用承诺/回调来做到这一点......
我只是不知道如何,我试图将回调作为参数传递并稍后调用它,但我得到“回调不是函数”。
var reader = new FileReader();
let inf = {}
let base64data;
let splitUrl = this.url.split('-')[4];
reader.onloadend = function() {
base64data = reader.result;
inf = { base64: base64data, id: splitUrl }
}
setTimeout(() => {
console.log(inf);
}, 3000);
嘿伙计们,我通过将“函数(){}”更改为箭头函数来修复它!
解决方案
加载结束时调用您的回调函数。使用setTimeout
是一个坏主意,因为它与负载的异步时序完全解耦。
只需对回调中的结果执行您想要执行的操作即可。
reader.onloadend = () => {
base64data = reader.result;
inf = { base64: base64data, id: splitUrl }
console.log(inf);
doStuffWithFile(inf);
}
推荐阅读
- arduino - Sony Spresense + Arduino:连接基于 W5500 的以太网,如果
- apache-spark - 每次触发后如何更新 HDFS 文件?
- javascript - 在 marklogic 中找不到来自不同数据库的模块
- java - 如何引用部署在 jboss 环境中的 src/main/resources 文件夹中的文件?
- d3.js - 如何在转换中伪造计算经过的时间和消息?
- python-3.x - 在一行中获取多个输入的问题
- python - 未知批量大小的Tensorflow tensordot
- c - 复制字符串 - 我必须如何处理内存泄漏和错误情况?
- react-native - ReactNative 渲染嵌套列表慢:建议
- javascript - NodeMailer 响应服务器上没有任何内容