jquery-deferred - 是否可以重置 jQuery 延迟对象状态?

标签 jquery-deferred

是否可以将已解析的 jQuery 对象重置为“未解析”状态并重新启动它的初始化和回调?

我正在做的具体事情是我在本地文件系统 api 上有一个 jQuery 延迟包装器。从那里我为我关心的事情建立了更高级别的延期:

var getFs = defFs.requestQuota(PERSISTENT, 1024*1024)
              .pipe (bytes) -> defFs.requestFs(PERSISTENT, bytes)

var getCacheContents = getFs.pipe (fileSystem) -> 
      defFs.getDirectory('Cache', fileSystem.root).pipe (dir) ->
          defFs.readEntries(dir)

现在大多数时候,当我调用 getCacheContents 时,我不介意返回的内存值,事实上我更喜欢它。但是,当我想写入缓存时,我真的希望能够重置该管道并让它在下次访问时重新选择和重新扫描缓存。

我可以从 $.Callbacks 拼凑出一些东西,但基于延迟的解决方案真的很理想。

最佳答案

A号Promise来自 definition只解决一次的事情 - 来自 unresolvedfulfilled或至 rejected .您将无法使用 jQuery 的 Deferred 来做到这一点。 s。

您实际搜索的是 Signals .它们将被多次触发,但提供类似的界面。周围有一些实现,你可以查看 js-signals wire.js .

关于jquery-deferred - 是否可以重置 jQuery 延迟对象状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11762619/

相关文章:

javascript - Reactjs 组件的异步渲染

javascript - 使用延迟时是否存在潜在的内存泄漏?

javascript - flickrapi (js) 循环中的多个异步调用

javascript - jQuery 延迟 promise 执行不按顺序执行?

jquery:当您将延迟对象传递到 "then"时会发生什么?

javascript - 当 api 调用超时时,BackboneJS 无法转到 .fail

javascript - 使用 KnockoutJS 在所有图像加载(并执行某些操作)时捕获

javascript - 在同步方法中等待异步方法?

jQuery:如何将延迟与动画堆栈一起使用

javascript - 使用 jQuery 延迟 - when() 和 getJSON() 回调