当前位置: 首页 > 面试题库 >

jQuery延迟了-我需要管道或链条来实现此模式吗?

公羊子真
2023-03-14
问题内容

我正在尝试使用延迟的JQuery来实现以下方案,但运气不佳。

您将使用延期api的哪些部分,以及如何构造调用以实现以下目标:

服务的第一个Ajax调用A检索ID列表

等到这个电话回来

然后n个对serviceB的ajax调用,每个调用都使用a,并使用callA返回的列表中的ID

等待所有的serviceB呼叫返回

然后最后一个ajax调用serviceC


问题答案:

您可以这样做(或多或少的伪代码):

(function() {
    // new scope
    var data = []; // the ids coming back from serviceA

    var deferredA = callToServiceA(data); // has to add the ids to data

    deferredA.done(function() { // if callToServiceA successful...
        var deferredBs = [];

        for i in data {
            deferredBs.push(callToServiceB(...));
        }

        $.when.apply($, deferredBs).then(callToServiceC); 
    });

}());

callToServiceX函数应返回由返回的Promise对象$.ajax

可能会有一个比“更干净”的解决方案,而不是使用data共享范围resolve,但是设置会更加困难(并且不一定更具可读性)。



 类似资料:
  • 本文向大家介绍jQuery延迟执行的实现方法,包括了jQuery延迟执行的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery延迟执行的实现方法。分享给大家供大家参考,具体如下: 做一个控件时碰到的一些无法同步处理的事件,可以用这样的延迟方法。 更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery日期与时间操作技巧总结》、《jQuery切换特效与技巧总结》

  • 问题内容: 这是关于管道实施的设计问题。以下是我的幼稚实现。 管道中各个步骤/阶段的接口: 管道中的步骤/阶段的具体实现: 管道类将保存/注册管道中的步骤,并一个接一个地执行它们: Diver程序执行管道: 但是,您可以看到,幼稚的实现有很多限制。 主要要求之一是,由于要求每个步骤的输出可以是任何类型,因此朴素的实现不是类型安全的(Pipeline类中的execute方法)。如果我碰巧错误地连接了

  • 通过添加while(ele==null)循环,我让代码大部分时间都在调试器之外运行和工作。非常难看。这让我认为我需要使用包装器覆盖FindElements()函数,但不知道如何这样做来增加一些延迟。Selenium Webdrive中的显式等待findElements有一个示例,但它是用JavaScript编写的。我把这个示例放在下面的代码中。有人能指导我吗?

  • 问题内容: 我发现很难理解“延迟反模式”。我想我基本上理解了它,但是我还没有看到一个简单的例子,说明什么是服务,具有不同的承诺和一个具有反模式的服务,所以我想尽我所能,但是看到自己不是这样超级了解这一点,我会先澄清一下。 我在工厂(SomeFactory)中具有以下内容: 我检查其对象的原因只是为了在其上添加一个简单的验证层 在下面,在我的指令中: 现在来看,这是一种反模式。因为原始的延迟承诺会捕

  • 问题内容: 我有一个包含5000多个数据记录的网格。这些数据每天都在增长。当我用网格加载页面时,网格显示数据几乎要花一分钟,我必须一次显示10行。 然后可以使用此jqGrid实现延迟加载吗? 这是我生成JSon字符串的操作: 这是带有jqGrid的页面: 请参阅下面的查询: 我在上述操作中设置的限制金额。该值为10。 问题答案: 好的,所以这是一个基于JPA的部分答案(但是我想让它适应Hibern

  • 问题内容: 在Linux上的“ C”上, 我需要静态库来静态链接,还是需要足够的共享库?如果没有,为什么不呢?(它们不包含相同的数据吗?) 问题答案: 是的,您需要静态库来构建静态链接的可执行文件。 静态库是编译对象的捆绑包。静态链接到库时,实际上与获取该库的编译结果,将它们解压缩到当前项目中以及将它们当作自己的对象使用一样。 动态库已链接。这意味着一些信息,例如重定位,已经被修复并丢弃。 此外,