0

When I run the code below I get the following error:

ReferenceError: Cannot access 'bar' before initialization.

Could someone help me understand why this is happening? As far as I can tell, the foo function should wait until the promise resolves (since I'm using await before moving onto the console.log(bar) line. What am I missing here?

function qux() {
  return Math.random();
}

async function bar() {
  let result = await qux();
  return result > 0.5;
}

async function foo() {
  let bar = await bar();
  console.log(bar);
}

foo();
Andy
  • 61,948
  • 13
  • 68
  • 95
bugsyb
  • 5,662
  • 7
  • 31
  • 47

1 Answers1

7

The problem is in the function foo()

bar is already a function and you're trying to assign to it while calling it, which probably isn't what you meant to do.

Change the name of one of them.

function qux() {
  return Math.random();
}

async function bar() {
  let result = await qux();
  return result > 0.5;
}

async function foo() {
  let x = await bar();
  console.log(x);
}

foo();
Andy
  • 61,948
  • 13
  • 68
  • 95
DexieTheSheep
  • 439
  • 1
  • 6
  • 16