// solve asynchronous callback hell scheme: async + promise
async function writeFile() {
// open a file
const fd = await new Promise((resolve, reject) => {
// perform asynchronous operation to open the file
fs.open('c.txt', 'w', (err) => {
if (!err) {
// The state promise object into a successful state
resolve();
} else {
// The state promise object into a failed state
reject(err);
}
})
})
// write to
await new Promise((resolve, reject) => {
fs.write(fd, '沛华~~', (err) => {
if (err) {
console.log ( 'file write failed', err);
}
resolve();
})
})
// close the file
await new Promise((resolve, reject) => {
fs.close(fd, (err) => {
if (!err) {
resolve()
} else {
reject(err);
}
})
})
return 'success';
}
const p = writeFile();
p.then((a) => {
console.log ( 'all performed over ~', a);
}).catch((err) => {
console.log(err);
})