Get result of currently running async function from other function

How to check if there is already running function and if it is exist listen to this function result;

foo = 0;

async function a() {
// wait 5 seconds and return foo = foo + 1;
}

async function b() {
// check if "function a" is running and return this running "function a" result 
// else
// run  function a and return result
}