Given the following promise:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Hello World!');
reject(new Error('error'));
}, 2000);
});
Which one of the following code blocks correctly rewrites this promise code using ES6 async/await?
function main() {
promise
.then((result) => console.log(result))
.catch((error) => console.error(error));
}
const main = async () => {
const { result, error } = await promise;
if (error) {
console.error(error);
}
console.log(result);
};
const main = () => {
try {
const result = await promise;
console.log(result);
} catch (error) {
console.error(error);
}
}
const main = async () => {
try {
const result = await promise;
console.log(result);
} catch (error) {
console.error(error);
}
}