我用webpack建立了一个浏览器umd库。
我正在侦听输入文件的onchange事件。当有人提交图像/文件时,它会将其转换为base64。我试图让它尽可能看起来不那么明显,所以我使用了promises和wait/asynchttps://blog.shovonhasan.com/using-promises-with-filereader/.
但是,有一个问题-当我调用convertToBase64函数时,没有收到响应。promise不返回拒绝或决议。没有抛出任何错误,并且该行与控制台连接。未命中日志(数据)。
html
<input id="hs-pay" type="file" accept="image/*" capture="camera">
<script type="text/javascript">
let hsp = new HSPay();
</script>
指数js
var HSFileReader = require('./helper/fileReader');
class HSPay {
constructor() {
this.fileReader = new HSFileReader();
this.imageInput = document.getElementById('hs-pay');
if (!this.imageInput) {
throw "Error(input): hs-pay could not be found:"
}
this.imageInput.addEventListener("change", this.uploadImage.bind(this));
}
async uploadImage() {
try {
let data = await this.fileReader.convertToBase64(this.imageInput.files[0]);
console.log("data", data);
} catch (e) {
console.log(e);
}
}
}
module.exports = HSPay;
文件阅读器。js
class HSFileReader {
constructor() {
this.fileReader = new FileReader();
}
convertToBase64(file) {
if (!file) {
throw "Error(input): file could not be found:"
}
return new Promise((resolve, reject) => {
this.fileReader.readAsDataURL(file);
this.fileReader.onerror = () => {
reject("Problem parsing input file.");
};
this.fileReader.onloadEnd = () => {
resolve(this.fileReader.result);
};
});
}
}
module.exports = HSFileReader;
根据MDN,onloadend
是FileReader
的一种方法onloadEnd
(大写E)永远不会被调用,因此,resolve
永远不会被调用。
问题内容: 我读到用关键字标记的异步函数隐式返回一个promise: 但这不连贯…假设返回一个诺言,而await关键字将从诺言中返回值,而不是诺言itsef,那么我的getVal函数 应该 返回该值,而不是隐式诺言。 那到底是什么情况?用async关键字标记的函数是隐式返回promise还是控制它们返回的内容? 也许,如果我们不明确地返回某些东西,那么他们会隐式地返回一个诺言…? 更清楚地说,上述
我用的是parse.com。每个包里面都有很多钻子,每个品类里面都有很多包。 我卡住了。然后(函数(result,result2,result3)在最后一行。promise可以有多个promise,它是可变的。有没有一种方法可以写出如下内容: 谢谢!
我有一个windows服务,我从另一个开发人员继承,它运行非常慢,并有许多对eBay API的缓慢调用。我希望在没有太多重构的情况下加快它。 我刚刚开始研究使用C#Async/Await来尝试让这些缓慢的调用运行异步。以下是我试图实现的目标: 如何获取返回的类型以便使用它们?我尝试使用,但它只有属性可用。
我一直在使用ECMAScript 很明显第一步是ECMAScript 下面是我如何实现基本promise的示例/伪代码- 随着时间的推移,我遇到了ECMAScript 同样,这里有一个伪代码,描述了我的异步等待函数的样子- 把语法错误(如果有的话)放在一边,我觉得它们做的事情完全一样。我几乎可以用async、Waities取代我的大部分promise。 当promise做类似的工作时,为什么需要异
我想返回用户的电话号码,但我得到的是[对象对象]。我在想,如果它在等待完成之前返回值。这是我的代码。 输出12345678,以便我可以在异步函数外部访问它。例如,要在个人资料页面中显示它,
我正试图将图像上传到firebase存储,但调用该函数时,未执行wait以获取url。我错过了什么? 看看这个其他主题,我发现问题可能是“然后”,但我如何设置代码以等待url? 异步/等待/然后飞镖/颤振 谢谢