(非ajax)能不能设置js的同步异步方式?

我有以下代码:
[code="js"]
... ...
fn1();
fn2();
... ...
[/code]
其中fn1()会进行一些计算,并将结果放到页面text中,fn2()要取得text中的值进行后期操作,因为js是异步的,如果fn1()的操作时间过长,fn2()就取不到正确处理后的text的值。除了把所有代码写在一个function中还有什么别的办法能避免这种情况吗?
谢谢

1、可以设置一个标识 如 flag默认false fn1执行完毕后设置为true
2、setInterval fn2 比如每2秒执行一次 如果flag=true 操作 并销毁setInterval

为啥不直接在fn1中调用fn2呢?用回调的方式