Задать вопрос
@Vlad242

Где ошибка в коде?

UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 4)
const uuid = require('uuid/v4')
const fs = require("fs")
const path = require("path")


class Course {
    constructor(title,price,img) {
        this.title = title
        this.price = price
        this.img = img
        this.id = uuid()
    }

    toJSON() {
        return {
            title:this.title,
            price:this.price,
            img:this.img,
            id:this.id
        }
    }

    async save() {
        const courses = await Course.getAll()
        courses.push(this.toJSON)


        return new Promise(( resolve, reject) => {
            fs.writeFile(
                path.join(__dirname, '..', 'data', 'courses.json'),
                JSON.stringify(courses),
                (err) => {
                    if (err) {
                        reject(err)
                    } else {
                        resolve()
                    }
                }
            )
            })
    }


    static getAll() {
        return new PromiseRejectionEvent((resolve, reject) => {
            fs.readFile(
                path.join(__dirname, "..", "data", "courses.json"),
                'utf-8',
                (err, content) => {
                    if (err) {
                        reject (err)
                    } else {
                        resolve(JSON.parse(content))
                    }
    
                }
    
            )
        })
       
    }
}
module.exports = Course
  • Вопрос задан
  • 1324 просмотра
Подписаться 2 Простой 2 комментария
Решения вопроса 1
joeberetta
@joeberetta Куратор тега JavaScript
Читай: https://epdf.pub/google-for-dummies.html
Согласно новому стандарту теперь будет вываливаться, если промисы/подобные не будут отлавливаться. Вам сейчас ошибка говорит, что вы .catch() (т.е. ошибки) не обработали
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 16:42
2000 руб./за проект
18 дек. 2024, в 16:33
2000 руб./в час
18 дек. 2024, в 16:06
5000 руб./за проект