簡體   English   中英

Promise 返回到分辨率之前

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM