是否可以将解决的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拼凑起来,但是基于延迟的解决方案真的是理想的.
解决方法
一个承诺是
definition这个只能解决一次的事情 – 从未解决到履行或拒绝.您将无法使用jQuery的Deferred来执行此操作.
您实际搜索的是Signals.它们将被多次触发,但提供了类似的界面.有一些实现,你可能会退出js-signals
或wire.js
.