Why does the then() where it says console.log('THIS COMES BEFORE THE WRITING AND EXTRACTING'); statement come before the writing and extracting to PDFs? I'm new to Promises, so I am a bit confused by this. I want that then() statement to happen AFTER the writing and parsing happens.
function writeToPDF(data, fileName) {
  return new Promise((resolve, reject) => {
    data.pipe(fs.createWriteStream(fileName), err => {
      reject();
    });
    data.on('end', () => {
      resolve();
    })
  });
}
function extractPDF(pdf) {
  return new Promise((resolve, reject) => {
    extract(pdf, {splitPages: false}, (err, text) => {
      if (err) {
        console.log(err);
      } else {
        resolve(text);
      }
    });
  });
}
request(link).then((success, failure) => {
  let fileName = './name-' + Date.now() + '.pdf';
  writeToPDF(data, fileName).then(() => {
    extractPDF(fileName).then((text) => {
      arrayOfDocuments.push(text);
    })
  }, () => {
    //handle error
  });
}).then(() => {
  console.log('THIS COMES BEFORE THE WRITING AND EXTRACTING');
});
 
     
     
    