延时对象代表了一个结果,但是这个结果可能是不可用的。它是抽像的,某种程度上来说,也可能是可被认识的。
我们附上关于延时对象的代码,以照应当结果变成可用时得到的期待的或者不正确的结果。
延时对象的用法很简单,我们制作一个计划:当X完成时,如果没有出错,做Y,否则就做Z。为了给出一个日常例子:“当滚桶烘干机工作完成时,如果衣服是干的,把它们折好、放好,否则把它们挂到绳上。”在这里,“滚桶洗衣机工作完成时”是延时对象,“折好、放好”是一个应对好的结果的处理程序(又称callback回调函数),“把它们挂在绳上”是一个应对坏的结果的处理程序(又称为errback)。一旦制定了这个计划,我们可以随便去做别的事情了。
虽然这个延时对象的返回结果是未知的,我们可以为两种可能性:当滚桶烘干机工作完成时,衣服是干的还是湿的,制定计划。烘干机可能实际上已经是完成工作了,但是这跟我们的计划无关。重要的是注意延时对象在初始状态和处理函数之间提供了一个清楚的分开。这种清晰的分开有很多优点,在这本书中,我们将探索它们。
如果它看起来比较抽象,不要惊慌;后面有大量的实例。
思考的原料
JavaScript程序在基于事件环境中运行。让我们搞清它意味着什么。击键,点击鼠标,以及底层I/O操作完成,都是事件。在你的程序运行时,它可能,