问题标签 [deferred]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 扭曲,在反应器停止时解除对threads.blockingCallFromThread的阻塞
threads.blockingCallFromThread
即使反应堆停止,它似乎也会一直阻塞。有什么办法可以解除封锁吗?它所阻塞的延迟依赖于来自另一端的 RPC,并且绝对不会随着反应器停止而进入。
python - twisted.protocols.ftp.FTPClient 和 Deferreds
像大多数人一样,我需要一段时间才能习惯使用 Deferreds,但我正在慢慢适应。但是,我不清楚如何处理响应,然后在使用 Twisted 的 FTP 模块时使用处理后的响应调用另一个 FTP 命令。我使用示例 FTP 代码作为我的起点。
我想连接到 FTP 服务器,获取所有顶级目录,然后输入每个目录并下载所有文件。
首先我连接:
它连接成功,所以我的connectionMade
函数被调用:
如您所见,我排队getSortedDirectories
,然后enterDirs
。
我的问题是,我如何浏览 中的目录enterDirs
?
我应该传递ftpClient
给enterDirs
喜欢fileList
传递给getSortedDirectories
然后发出我的下载请求吗?
这是最好的方法吗?
python - twisted:检查一个 deferred 是否已经被调用
这就是我想要完成的。我正在远程调用服务器以获取信息,我想阻止以等待信息。我创建了一个返回 Deferred 的函数,这样当 RPC 带有回复时,就会调用 deferred。然后我有一个从线程调用的函数threads.blockingCallFromThread(reactor, deferredfunc, args)
。
如果出现问题——例如,服务器宕机——那么呼叫将永远不会解除阻塞。在这些情况下,我更希望延迟的人例外。
我部分成功了。我有一个延迟,onConnectionLost
当连接丢失时它会关闭。我将阻塞调用函数修改为:
这工作正常。如果服务器宕机,则连接丢失,并触发 errback。但是,如果服务器没有宕机并且所有东西都干净地关闭了,onConnectionLost
仍然会被触发,并且这里的匿名回调会尝试触发 errback,从而引发AlreadyCalled
异常。
有没有什么巧妙的方法来检查一个 deferred 是否已经被解雇了?我想避免将它包装在一个try/except
块中,但如果这是唯一的方法,我总是可以诉诸于此。
twisted - 使用 deferred 进行无限调用循环
我们可以使用延迟(http://twistedmatrix.com/documents/current/core/howto/defer.html)来进行无限调用循环,其中函数将自身添加到延迟链中吗?我试图这样做,但它不起作用:
python - 让 python 程序等到 Twisted deferred 返回一个值
我有一个从其他页面获取信息并使用 BeautifulSoup 和 Twisted 的 getPage 解析它们的程序。稍后在程序中,我打印延迟进程创建的信息。目前我的程序尝试在不同的返回信息之前打印它。我怎样才能让它等待?
python - 扭曲:如果来自回调的错误,则不会跟踪异常
考虑以下代码:
当它运行时,该异常就会被吃掉。它去哪儿了?我怎样才能让它显示出来?做defer.setDebugging(True)
没有效果。
我问这个是因为其他时候,我得到一个打印输出,上面写着“Deferred 中的未处理错误:”。在这种情况下,我该如何实现?我看到,如果我添加一个 errback,df
那么 errback 会被异常调用,但我要做的就是打印错误并且什么都不做,而且我不想手动将该处理程序添加到我创建的每个延迟。
gwt - GWT Deferred Binding 仅在 catch 中加载所需的类
我们有产品,其前端在 GWT 中。因为它包含许多类(大约 150 个菜单,您现在可以想象)
当用户第一次访问时,加载需要时间。(如果带宽低,那么这会增加)
下一次以后它仍然处于捕获状态,我们不必担心带宽。
我可以通过使用 GWT 延迟绑定来减少第一次加载时间吗?
python - python twisted:检索延迟的执行时间
我想知道从触发第一个回调到最终结果的延迟执行需要多长时间。
关于如何做到这一点的任何想法,可能是以非侵入性方式(意味着不修改任何回调函数以跟踪执行时间)?
python - 扭曲的延迟/回调和异步执行
我试图弄清楚如何使用扭曲使我的代码更加异步。
- 函数返回一个延迟对象
- 然后我添加一个回调列表
- 第一个回调将在延迟函数通过提供一些结果后调用
deferred_obj.callback
- 然后,在回调链中,第一个回调将处理数据并调用第二个回调
- 等等。
然而,链式回调不会被认为是异步的,因为它们是链式的,并且事件循环将继续同时触发它们中的每一个,直到不再有,对吧?
但是,如果我有一个延迟对象,并且我将 deferred_obj.callback 作为其回调附加,d.addCallback(deferred_obj.callback)
那么这将被认为是异步的,因为 deferred_obj 正在等待数据,然后传递数据的方法正在等待数据同样,一旦我 d.callback 'd' 对象处理数据然后它调用 deferred_obj.callback 但是由于该对象是延迟的,与链式回调的情况不同,它将异步执行......对吗?
假设我的所有代码都是非阻塞的,这意味着链式回调不是异步的,而链式延迟是异步的,对吗?
python - python twisted DeferedList ErrorBack(Deferred 中未处理的错误)
在下面的代码中,我传递了一个主机:端口组合,并尝试使用扭曲延迟从服务器获取一些信息。我已经展示了我正在尝试做的一个非常基本的代码。与主机端口的连接是通过 httplib 建立的。如果主机启动,它可以正常工作。调用正确的回调方法。但是当它失败时(当检索 url 失败时),它不会进入 printError 函数。我收到“延迟中的未处理错误”错误并且循环停止。有人可以告诉我如何摆脱错误。请提供解决方案。