const fs =require('fs');
console.log("Before");
// πto read file normally through callbacks
// fs.readFile("f1.txt",function(err,data){
// if(err)
// {
// console.log(error);
// }
// else{
// console.log("file data ->"+data);
// }
// })
// πans -> Before
// file data ->this is file 1
//π reading file by PROMISE
// (this is the first stage , where the promise shows pending )
let promise =fs.promises.readFile('f1.txt')
// (here we have used promise present inside the fs module)
console.log(promise);
// π(if we replace the file with f3.txt , then it would not run because it will not run )
// ans->
// Before
// Promise { }
// After
// (after pending stage , we have two stages -either to get fulfilled or to get rejected)
// fulfill - is done by .then
// reject - is done by .catch
// just like try and catch
promise.then(function(data){
console.log("File data->"+data);
})
promise.catch(function(err){
console.log(err);
})
//π ans -> Before
// Promise { }
// After
// File data->this is file 1
console.log('After');
HOW TO CONSTRUCT A PROMISE ?
let promise = new Promise(function(resolve,reject){
const a=2;
const b=2;
if(a===b)
{
// resolve();
resolve("yes value are equal");
//resolve calls .then function
}
else
{
// reject();
reject("no value are not equal");
//reject calls ,.catch function
}
// you cannot put .then and catch inside the promise
})
// π1st way
// promise.then(function(){
// console.log("Equal");
// })
// promise.catch(function(){
// console.log("Not Equal");
// })
//π ans ->"Equal"(because value of a & b is 2 )
//π ans -> "Not Equal"(because value of a and b is differennt a=2 , b=4)
// π2nd way(through CHAINING OF THEN AND CATCH)
// promise.then(function(){
// console.log("Equal");
// }).catch(function(){
// console.log("Not Equal");
// })
//π 3rd way(writing in resolve and reject and returning in then and catch)
promise.then(function(data){
// console.log(data);
console.log("result coming from resolve method"+data);
}).catch(function(err){
// console.log(err);
console.log("result coming from reject method"+err);
})
//πans ->yes value are equal
//πans ->result coming from resolve methodyes value are equal
πHandwritten Notes:
https://github.com/pushanverma/notes/blob/main/webd/Promises%20in%20Js.pdf
Top comments (0)