Javascript 在使用FileReader时,如何在typescript中使用回调函数?角度5

Javascript 在使用FileReader时,如何在typescript中使用回调函数?角度5,javascript,angular,promise,callback,Javascript,Angular,Promise,Callback,我在尝试将承诺/回调应用于我的TypeScript函数时遇到了一些困难 我需要收集reader.onloadend的结果并将其发送到我的nodejs express后端(使用服务),但我能够做到这一点的唯一方法是通过setTimeout,我非常确定,如果我可以通过setTimeout做到这一点,我也可以通过承诺/回调做到这一点 我只是不知道怎么做,我试着将回调作为参数传递,稍后再调用它,但我得到的是“回调不是函数” 嘿,伙计们,我把它从“function(){}”改成了arrow函数 加载结束时

我在尝试将承诺/回调应用于我的TypeScript函数时遇到了一些困难

我需要收集reader.onloadend的结果并将其发送到我的nodejs express后端(使用服务),但我能够做到这一点的唯一方法是通过setTimeout,我非常确定,如果我可以通过setTimeout做到这一点,我也可以通过承诺/回调做到这一点

我只是不知道怎么做,我试着将回调作为参数传递,稍后再调用它,但我得到的是“回调不是函数”


嘿,伙计们,我把它从“function(){}”改成了arrow函数

加载结束时,将调用回调函数。使用
setTimeout
是个坏主意,因为它与负载的异步定时完全解耦

只需对回调中的结果执行您想要执行的操作

reader.onloadend = () => {
  base64data = reader.result;

  inf = { base64: base64data, id: splitUrl }
  console.log(inf);
  doStuffWithFile(inf);
}

你有没有考虑过在你的阅读中加入可观察到的支持,如下面的回答:嘿,谢谢你的回答。问题是,当我尝试在回调中执行某些操作时,我会收到错误消息说“myService不存在于'FileReader'编辑类型上:我刚刚意识到,在将普通函数更改为箭头函数后,我能够调用我的服务!对此我很抱歉,谢谢!是的,你应该总是在角度上使用箭头函数。箭头函数包含一个词法
this
,它总是引用调用它的上下文(组件)。
reader.onloadend = () => {
  base64data = reader.result;

  inf = { base64: base64data, id: splitUrl }
  console.log(inf);
  doStuffWithFile(inf);
}