C
要分析前后句的关系,前面说:John 等了将近半个小时,后面说:车最终来了.
肯定是说车来之前john等了这么久.
when 和 while 都是 当……时候 的意思,不符合题意
as 在这里也是 当……时候 的意思,
before 在……之前