11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

Parse 发布 Bolts,一个面向 iOS 和 Android 的底层库集合

  • 2014-02-13
  • 本文字数:940 字

    阅读完需:约 3 分钟

数月前,Parse 被Facebook 收购。最近,它开源了一个面向iOS 和Android 的底层库集合,统称为Bolts。根据Parse 的公告,Bolts 是Parse 和Facebook 共同努力将两家公司各自独立开发的小型底层工具类合并的结果。

Tasks 是 GitHub 上第一个可用的Bolts 组件,旨在按照 JavaScript Promises 模型处理异步操作。

Promises 试图解决使用回调函数处理异步操作时通常会出现的若干问题,尤其是这样一个事实:由于回调函数内部异步操作的嵌套,试图组合多个串行或并行异步操作会很快变得难以处理。

为了这个目标,一个Promise 代表一项可能已经完成或者可能尚未完成的任务的结果,而它最终可能会变成一个错误。这样,任何异步操作都可以立即在执行结果中返回一个Promise;该Promise 可以随时访问,如果异步操作尚未完成,可能阻塞调用者。

不过,一个Promise 通常关联两个回调函数,用于在异步任务已经完成或者失败时调用。Promises 的特别之处在于回调函数本身封装在Promise 之中,所以它们只在将来的某个时间点执行,或者根本不执行,这依赖于原Promise 的状况。

多亏这一机制,处理异步操作的序列变得简单易懂,因为Promises 可以链到一起来代表异步操作和其回调函数,如上图所示(源自: Promises,Luke Smith 。)

Promises 的另一项优点在于错误通过 Promises 链传播的方式:由于 Promise 知道它是否已经达成,它可以将错误状态沿着 Promises 链传播,直至找到一个错误处理器,因此,开发人员无需为链上的每个异步操作提供错误处理器。

Promises 实现的组件可以用在 JavaScript Scala Clojure 和许多其它语言中。

Parse 声称,与 Android AsyncTask iOS NSOperation 相比,Tasks 有若干优势,其中包括:

  • 连续执行数个任务不会像只使用回调函数时那样创建嵌套的“金字塔(pyramid)”代码。
  • Tasks 是完全可组合的,允许开发人员执行分支、并行和复杂的错误处理。
  • 开发人员可以按照执行顺序安排基于任务的代码,而不必将逻辑分解到分散的回调函数中。

Bolts 组件与 Parse 或者 Facebook 服务完全无关,不需要使用 Parse 或者 Facebook 的开发人员账户。

尽管已经发布了更多的 Bolts 组件,但 Parse 尚未发布与之相关的任何细节。

查看英文原文:**** Parse Announces Bolts, a Collection of Low-level Libraries for iOS and Android

2014-02-13 09:448075
用户头像

发布了 256 篇内容, 共 74.9 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

【Android FrameWork】综合面试问题

android 程序员 移动开发

【Android-Jetpack】Lifecycle-从入门到精通

android 程序员 移动开发

【Flutter 专题】123 图解简易 GroupList 二级分组列表

android 程序员 移动开发

【Java转Android】34

android 程序员 移动开发

《近匠》棱镜:手游渠道SDK平台的技术历程

android 程序员 移动开发

「正确」的使用Kotlin Flow进行搜索优化

android 程序员 移动开发

【基础01】Android 开发到底是做什么?

android 程序员 移动开发

【整理篇】Flutter 常用第三方库、插件

android 程序员 移动开发

整个大活,采集8个代理IP站点,为Python代理池铺路,爬虫120例之第15例

梦想橡皮擦

11月日更

[译]使用 MVI 编写响应式 APP — 第五部分 — 简单的调试

android 程序员 移动开发

【建议收藏】面试没亮点?给你一份Android热门三方库源码面试宝典及学习笔记

android 程序员 移动开发

“你们程序员不就是修电脑的吗,你牛什么牛?

android 程序员 移动开发

”去他丫的北上广,老子要去成都定居了!

android 程序员 移动开发

【Android进阶笔记】虚拟机(Dalvik

android 程序员 移动开发

[译]利用 Android 构建 TV 的未来

android 程序员 移动开发

【Android进阶学习】Android-广播接收器(Broadcast-Receivers)

android 程序员 移动开发

【CSS Master】选择器四种基本类型

devpoint

CSS CSS语法 11月日更

[译] 轻松发布私有 App

android 程序员 移动开发

《基于Android微博整合客户端的设计与实现》毕业设计中期考核表

android 程序员 移动开发

解构服务风险治理

方勇(gopher)

微服务 OLAP SRE 服务治理 构架

【干货】Android 一线互联网面试题汇总,13模块200

android 程序员 移动开发

【淘系技术】超详解析Flutter渲染引擎_业务想创新,不了解底层原理怎么行

android 程序员 移动开发

【Flutter桌面篇】Flutter&Windows应用尝鲜

android 程序员 移动开发

【Java转Android】50

android 程序员 移动开发

【技术漫谈】Android高手进阶,这个必须要学 !

android 程序员 移动开发

“你们程序员不就是修电脑的吗,你牛什么牛?(1)

android 程序员 移动开发

《Head First 设计模式学习记录-终篇亦非终篇》

android 程序员 移动开发

【CSDN插件测评】效率增倍,程序猿开发必备插件

android 程序员 移动开发

【干货推荐】Android市场今非昔比,Android开发者该学习哪些东西提高竞争力

android 程序员 移动开发

【Android】仿斗鱼滑动拼图验证码控件

android 程序员 移动开发

【Android面试查漏补缺】之Handler详解,带你全面理解Handler消息机制

android 程序员 移动开发

Parse发布Bolts,一个面向iOS和Android的底层库集合_Android_Sergio De Simone_InfoQ精选文章