如果JavaScript函数耗时太长,你可以中止吗?如果是这样,怎么样?
即。我调用同步doStuff()
,如果它没有在规定的时间内返回,它就会中止并继续执行,就像它确实返回一样。
答案 0 :(得分:2)
您不能使用同步代码执行此操作(除非您从该函数内的代码中退出同步函数)。但是你可以使用promises以优雅的方式实现你想要的东西。它类似于异步调用函数,并且由于分辨率是异步的,因此可以在超时后中断。请参阅how promises work on MSDN,David Walsh blog和on promisejs。后者还有一些关于中断承诺的例子(参见Promise.race
代码)。如果你搜索它,互联网上有很多信息。