爬虫日记(99):Twisted的Deferred重新审视
Posted caimouse
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫日记(99):Twisted的Deferred重新审视相关的知识,希望对你有一定的参考价值。
在前面的例子可以看到,回调函数是事件循环框架异步编程的基本方式,只有使用回调函数才能把用户的代码,插入到框架的事件循环里运行,这是所有事件循环框架的基本要求,也是它的基本内容,因此Twisted框架也不例外,它的基本开发方式就是编写一串又一串的回调函数链,让整个回调管理更加方便。
由前面的例子来看,最简单的回调处理,就有两个回调函数:一个是正常的回调,一个是错误的回调。我们要成为Twisted的开发人员,就要思考怎么样让这些回调函数更加容易管理,避免一些陷阱。
Twisted为了管理回调函数方便,添加了一个叫做Deferred类,这个类定义在twisted.internet.defer里。当创建一个Deferred类对象时,这个对象就包含两条回调链,一条是正常的回调链,一条是异步的回调链。我们可以往这两条链里添加任意个回调函数,然后可以通过这个对象设置为那一种结果的回调,如果是正常结果就调用正常回调链的函数,如果是异常结果,就回调异常回调的函数。
以上是关于爬虫日记(99):Twisted的Deferred重新审视的主要内容,如果未能解决你的问题,请参考以下文章
爬虫日记(101):Twisted:使用Deferred重构异常代码