|
|
|
@ -203,11 +203,11 @@ enum Either<A, B> {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
`race` 函数返回 `Left`, 如果第一个参数先完成,并包含该 future 的输出,如果 *第二个* future 先完成,则返回 `Right` 和第二个 future 的输出。这匹配调用函数时参数出现的顺序:第一个参数在第二个参数的左边。
|
|
|
|
|
`race` 函数返回 `Left`,如果第一个参数先完成,并包含该 future 的输出,如果 *第二个* future 先完成,则返回 `Right` 和第二个 future 的输出。这匹配调用函数时参数出现的顺序:第一个参数在第二个参数的左边。
|
|
|
|
|
|
|
|
|
|
我们还更新了 `page_title` 来返回与传递时相同的 URL。如此如果首先返回的页面没有可以解析的 `<title>`,仍然可以打印出有意义的信息。有了这些信息,我们对 `println!` 的输出进行了封装和更新,以表明哪个 URL 最先完成,并在页面有 `<title>` 时打印出它的内容。
|
|
|
|
|
|
|
|
|
|
现在我们完成一个小型网页爬虫的构建了!挑选一对 URL并运行命令行工具。你会发现某些网站稳定地快于其它网站,而有些情况哪些网站会 *赢* 则每次都不同。更重要的是,你已经掌握了处理 futures 的基础知识,因此我们现在可以进一步探索更多异步操作的可能性了。
|
|
|
|
|
现在我们完成一个小型网页爬虫的构建了!挑选一对 URL 并运行命令行工具。你会发现某些网站稳定地快于其它网站,而有些情况哪些网站会 *赢* 则每次都不同。更重要的是,你已经掌握了处理 futures 的基础知识,因此我们现在可以进一步探索更多异步操作的可能性了。
|
|
|
|
|
|
|
|
|
|
[impl-trait]: ch10-02-traits.html#trait-作为参数
|
|
|
|
|
[iterators-lazy]: ch13-02-iterators.html
|
|
|
|
|