循环中的延迟方法

时间:2014-08-28 06:06:05

标签: javascript jquery while-loop jquery-deferred

我有一个while循环,我调用deferred方法,普通方法都返回一个值。问题是每次迭代都会进行while循环,而延迟方法和普通方法的返回值不是顺序的。延迟方法的一些返回值迟到了。如何使while循环等到延迟方法返回值。

请给我一个解决方案我坚持了好几天。

更新:伪代码

while(!stopProcess){
        var pageno=findpageno(param);
        findPageNoRecursively.done(pagenum){
                 pageno=pagenum;
             }
        return pageno;
}

任何帮助都将受到高度赞赏

1 个答案:

答案 0 :(得分:0)

没有办法将异步方法更改为同步因为(由于我不完全清楚的原因)Javascript不提供对事件循环处理的访问。

在其他基于事件的编程环境中,您可以编写“嵌套事件循环”,您可以在处理事件时等待操作完成。这在Javascript中是不可能的,并且始终要求您的代码终止回隐藏的事件循环。

这就是为什么例如在node.js中提供方法的“Sync”变体的原因:在Javascript中不可能只给出异步的Sync版本,因为没有同步等待原语。