Асинхронное чтение книг в массиве методом обещания

#javascript #asynchronous #promise #es6-promise

Вопрос:

здравствуйте, я изучаю асинхронный javascript, и у меня возникли проблемы с вызовом функции promise. есть promise.js и index.js в индексе он вызывает функцию readBooksPromise. Книга, которая будет потрачена, — это книга в массиве книг. функция readBooksPromise принимает время ввода, равное 10000 мс (10 секунд), и книги с индексом 0. После получения разрешения оставшееся время уменьшается, оставшееся время используется для чтения книги с индексом 1. И так далее, пока не истечет время. Зацикливание здесь запрещено. Спасибо

 // promise.js
function readBooksPromise(time, book) {
  console.log(`i start reading ${book.name}`);
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      let remainingTime = time - book.timeSpent;
      if (remainingTime >= 0) {
        console.log(`i've finished reading ${book.name}, my time now ${remainingTime} left`);
        resolve(remainingTime);
      } else {
        console.log(`i dont have time to read ${book.name}`);
        reject(remainingTime);
      }
    }, book.timeSpent);
  });
}

module.exports = readBooksPromise;

 
 var readBooksPromise = require("./promise.js");

var books = [
  { name: "LOTR", timeSpent: 3000 },
  { name: "Fidas", timeSpent: 2000 },
  { name: "Calculus", timeSpent: 4000 },
  { name: "comics", timeSpent: 1000 },
];

// continue the code to call function readBooksPromise
 

Комментарии:

1. «У меня возникли проблемы с вызовом функции обещания» : это очень расплывчато. В чем именно заключается проблема, с которой вы столкнулись при решении этого упражнения?

2. Я предлагаю закрыть этот вопрос, так как Спрашивающий не отвечает и не прилагает никаких усилий.