小编use*_*050的帖子

javascript嵌套循环等待用户输入

我刚刚在C#中构建了一个C解释器,现在开始将它转换为Javascript.一切都很顺利,直到我意识到js没有睡眠功能.我的解释器使用递归解析器,它暂停用户输入,同时它嵌套了几个深层函数(在C#中我在第二个线程中使用了waithandle).我查看了setInterval和setTimeout,但它们是异步/非阻塞的; 当然,busywait是不可能的,我查看了我在SO上找到的timed_queue实现,但没有运气.我在主窗口和webworker中都尝试过解析器.我正在使用jQuery.我对js的经验有限,我正在寻找想法.我对继续传递风格或收益率知之甚少,我想知道他们是否可能持有关键.这里有一些从代码中删除来显示一些控件脚本.任何想法请...

var STATE = {
    START: "START",
    RUN: "RUN", //take continuous steps at waitTime delay
    STEP: "STEP", //take 1 step
    PAUSE: "PAUSE",//wait for next step command
    STOP: "STOP",
    ERROR: "ERROR"
}
var state = state.STOP;

function parsing_process() //long process we may want to pause or wait in 
{
    while(token !== end_of_file)//
    {
        //do lots of stuff - much of it recursive
        //the call to getNextToken will be encountered a lot in the recursion
        getNextToken();
        if (state === STATE.STOP)
            break; …
Run Code Online (Sandbox Code Playgroud)

javascript interpreter delay pausing-execution

6
推荐指数
1
解决办法
1558
查看次数