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