我正面临一些难以尝试将promises / callback应用于我的TypeScript函数。
我需要收集reader.onloadend的结果并将其发送到我的nodejs express后端(使用服务),但我能够做到的唯一方法是通过setTimeout,我很确定如果我可以通过使用setTimeout,我也可以通过使用promises / callbacks来实现...
我只是不知道如何,我试图将回调作为参数传递并稍后调用它,但我得到“回调不是函数”。
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);
嘿伙计们,我通过从“function(){}”更改为箭头函数来修复它!
加载结束后调用回调函数。使用setTimeout
是一个坏主意,因为它与负载的异步时序完全解耦。
只需对回调中的结果执行您想要做的事情。
reader.onloadend = () => {
base64data = reader.result;
inf = { base64: base64data, id: splitUrl }
console.log(inf);
doStuffWithFile(inf);
}