In Javascript, the callback from queue is run only when the call stack is empty.
I understand that when the program finishes execution, the call stack becomes empty. This is the time the callback will run.
This question is about await. Suppose the main program (by main I am referring to the outer most program code) calls a function that calls fetch async and awaits for response. Until the response arrives, the control goes to the caller (main program). Now suppose there is an await in the main program, then does this make the call stack empty and thus run the callback without the program finishing execution?