Wrong in promises, program opens and instantly closes

100 Views Asked by At

Code ytdl.js

const ytdl = require('ytdl-core')
const fs = require('fs')

downloadAudio = link => {
    return new Promise((resolve, reject) => {
        const stream = ytdl(link).pipe(fs.createWriteStream(`musica.mp3`));
        stream.on('error', () => {
            console.log('Tive problemas para baixar sua música!')
            reject();
        })
        stream.on('close', () => {
            console.log('Baixado!')
            resolve();
        })
    })
}

Code index.js


const api = require('./ytdl')

api.downloadAudio('https://www.youtube.com/watch?v=I3A45smjVo4').then(()=>{
    console.log('Música baixada!')
}).catch(()=>{
    console.log('Tive algum problema para baixar sua música!')
})

Why when I compile the code does the system just shut down? Am I missing promises?

Obs: I'm a beginner, sorry.

1

There are 1 best solutions below

0
On BEST ANSWER

If you want to use downloadAudio() outside your module, you need to export it, otherwise the function is only available inside the module. That means that the call api.downloadAudio is undefined since downloadAudio does not exists outside the module.

So change the line

downloadAudio = link => {

to

exports.downloadAudio = link => {

More info can be found in the documentation.