async + promise to solve the callback hell

// 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);
})

Guess you like

Origin www.cnblogs.com/wangsai-666/p/12038416.html