Is there any way that one job can read another job?

After trying to sort out things, I think I also want to know if such a route is possible-
run two tasks parallelly, however, when one finishes, it waits for the second job’s result, and if second job is successfull, then run some script. like:

    - script:
        sleep 15
        echo "JOB_1_DONE=true"

    - script:
        while [ ! "$(JOB_1_DONE)" ]; do 
          echo "Waiting for Job 1...";
          sleep 2;
        echo "FINISHED !"

I tried with stages approach, but there seems that another stage has to re-create whole environment etc, which extends build additionally.