[英]Promise returning to then before resovle
I have books object having data stored in file.我有书籍 object 将数据存储在文件中。 I am reading data from each file and creating books.
我正在从每个文件中读取数据并创建书籍。
Here issue is createBooks promise then is getting called before completion of reading file and success of createBook method call.这里的问题是 createBooks promise 然后在读取文件完成和 createBook 方法调用成功之前被调用。
createBooks: function (books) {
return new Promise((resolve, reject) => {
const booksArray = Object.entries(books);
const aPromises = [];
booksArray.forEach(([key, value]) => {
if(value.data){
const oFileReader = new FileReader();
oFileReader.readFile(value.data)
.then((product) => {
aPromises.push(this.Service.createBook(books));
});
}
});
Promise.all(aPromises)
.then(results => resolve(results))
.catch(error => reject());
});
},
Try to log aPromises
array values before Promise.all(aPromises)
.尝试在
Promise.all(aPromises)
之前记录aPromises
数组值。 Are there Promise<> objects?有 Promise<> 对象吗?
What does the this.Service.createBook(books)
return? this.Service.createBook(books)
返回什么?
FileReader
does not have readFile
method. FileReader
没有readFile
方法。
You should use oFileReader.onload
handler您应该使用
oFileReader.onload
处理程序
oFileReader.onload = function(){
aPromises.push(this.Service.createBook(books));
};
oFileReader.readAsDataURL(value.data); // value.data - has to be File
// oFileReader.readAsText(value.data); // value.data - has to be blob
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.