[英]Promise returning to then before resovle
我有書籍 object 將數據存儲在文件中。 我正在從每個文件中讀取數據並創建書籍。
這里的問題是 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());
});
},
嘗試在Promise.all(aPromises)
之前記錄aPromises
數組值。 有 Promise<> 對象嗎?
this.Service.createBook(books)
返回什么?
FileReader
沒有readFile
方法。
您應該使用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.