
134
|
第
6
章
async function
admins_from_list(Traversable<int> $ids): Awaitable<Vector<int>> {
return
HH\Asio\vf($ids, fun('is_user_admin'));
}
值得注意的是,
HH\Asio\v()
和
HH\Asio\m()
并不是
asio-utilities
的
一部分,它们
内置在
HHVM
中,所以在
Hack
代码中总是有效的。
表
6-1
展示了这个助手函数的全部范围,以及它们的功用。
表 6-1:asio-utilities 助手函数
名称
返回类型
回调
传递键到回调?
包装异常?
v() Vector
N/A
vm() Vector
Mapping No No
vmk() Vector
Mapping Yes No
vf() Vector
Filtering No No
vfk() Vector
Filtering Yes No
vw() Vector
Filtering Yes No
vmw() Vector
N/A N/A Yes
vmkw() Vector
Mapping Yes No
vfw() Vector
Mapping No Yes
vfkw() Vector
Filtering Yes Yes
拉姆达表达式语法(见
3.4
节)和这些异步助手函数联合使用起来是非常方便的。拉姆
达表达式可以减少闭包语法所需要的模板代码。下面改写一个以前的范例。 ...