Callback to Promise

by clarmond

JavaScript

function doubleIt(arg, callback) {
	result = arg * 2;
  callback(null, result);
}

doubleIt(10, (err, result) => { console.log(`result = ${result}`); });

async function doubleItAsync(arg) {
    return new Promise((resolve) => {
        doubleIt(arg, (err, result) => {
          if (err) {
          	reject(err);
            return;
          }
          resolve(result);
        });
    });
}

doubleItAsync(20)
	.then((result) => { console.log(`result = ${result}`); })
  .catch((err) => { console.log('Error', err); })

async function test(arg) {
	const results = await doubleItAsync(arg);
  return results;
}

const results = test(40);
console.log(`await results = ${results}`);