偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Parse Bolts:一個(gè)面向iOS和Android的底層庫集合

移動(dòng)開發(fā)
此前,Parse被Facebook收購。最近,它開源了一個(gè)面向iOS和Android的底層庫集合,統(tǒng)稱為Bolts。根據(jù)Parse的公告,Bolts是Parse和Facebook共同努力將兩家公司各自獨(dú)立開發(fā)的小型底層工具類合并的結(jié)果。

此前,Parse被Facebook收購。最近,它開源了一個(gè)面向iOS和Android的底層庫集合,統(tǒng)稱為Bolts。根據(jù)Parse的公告,Bolts是Parse和Facebook共同努力將兩家公司各自獨(dú)立開發(fā)的小型底層工具類合并的結(jié)果。

Tasks是GitHub上***個(gè)可用的Bolts組件,旨在按照J(rèn)avaScript Promises模型處理異步操作。

Promises試圖解決使用回調(diào)函數(shù)處理異步操作時(shí)通常會(huì)出現(xiàn)的若干問題,尤其是這樣一個(gè)事實(shí):由于回調(diào)函數(shù)內(nèi)部異步操作的嵌套,試圖組合多個(gè)串行或并行異步操作會(huì)很快變得難以處理。

為了這個(gè)目標(biāo),一個(gè)Promise代表一項(xiàng)可能已經(jīng)完成或者可能尚未完成的任務(wù)的結(jié)果,而它最終可能會(huì)變成一個(gè)錯(cuò)誤。這樣,任何異步操作都可以立即在執(zhí)行結(jié)果中返回一個(gè)Promise;該P(yáng)romise可以隨時(shí)訪問,如果異步操作尚未完成,可能阻塞調(diào)用者。

不過,一個(gè)Promise通常關(guān)聯(lián)兩個(gè)回調(diào)函數(shù),用于在異步任務(wù)已經(jīng)完成或者失敗時(shí)調(diào)用。Promises的特別之處在于回調(diào)函數(shù)本身封裝在Promise之中,所以它們只在將來的某個(gè)時(shí)間點(diǎn)執(zhí)行,或者根本不執(zhí)行,這依賴于原Promise的狀況。

多虧這一機(jī)制,處理異步操作的序列變得簡單易懂,因?yàn)镻romises可以鏈到一起來代表異步操作和其回調(diào)函數(shù),如上圖所示(源自:Promises,Luke Smith。)

Promises的另一項(xiàng)優(yōu)點(diǎn)在于錯(cuò)誤通過Promises鏈傳播的方式:由于Promise知道它是否已經(jīng)達(dá)成,它可以將錯(cuò)誤狀態(tài)沿著Promises鏈傳播,直至找到一個(gè)錯(cuò)誤處理器,因此,開發(fā)人員無需為鏈上的每個(gè)異步操作提供錯(cuò)誤處理器。

Promises實(shí)現(xiàn)的組件可以用在JavaScript、Scala、Clojure和許多其它語言中。

Parse聲稱,與Android AsyncTaskiOS NSOperation相比,Tasks有若干優(yōu)勢,其中包括:

  • 連續(xù)執(zhí)行數(shù)個(gè)任務(wù)不會(huì)像只使用回調(diào)函數(shù)時(shí)那樣創(chuàng)建嵌套的“金字塔(pyramid)”代碼。
  • Tasks是完全可組合的,允許開發(fā)人員執(zhí)行分支、并行和復(fù)雜的錯(cuò)誤處理。
  • 開發(fā)人員可以按照執(zhí)行順序安排基于任務(wù)的代碼,而不必將邏輯分解到分散的回調(diào)函數(shù)中。

Bolts組件與Parse或者Facebook服務(wù)完全無關(guān),不需要使用Parse或者Facebook的開發(fā)人員賬戶。

盡管已經(jīng)發(fā)布了更多的Bolts組件,但Parse尚未發(fā)布與之相關(guān)的任何細(xì)節(jié)。

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

責(zé)任編輯:閆佳明 來源: infoq
相關(guān)推薦

2011-07-20 14:32:59

SQLite數(shù)據(jù)庫LIKE查詢IN集合查詢

2017-11-22 13:50:08

Bolts線程方法

2012-12-20 11:14:44

IBMdW

2019-05-07 16:15:06

iOS系統(tǒng)系統(tǒng)通知庫通知消息

2021-05-19 22:23:56

PythonJavaScript數(shù)據(jù)

2018-01-02 16:08:00

AndroidiOSReact Nativ

2024-02-23 10:10:00

List接口Java

2020-12-17 12:31:16

javascriptDAOlocalStorag

2014-06-18 09:55:29

iOS開發(fā)者學(xué)習(xí)Android

2013-09-18 10:00:15

2018-11-22 14:09:45

iOS架構(gòu)組件開發(fā)

2009-08-04 10:22:20

Project Zer

2014-10-14 15:50:19

UIAndroid

2021-02-02 05:41:16

底層設(shè)計(jì)頂層

2015-10-16 13:41:52

程序對象設(shè)計(jì)

2013-09-27 13:14:38

AndroidiOS 7

2024-02-19 08:26:59

wxPython界面庫開發(fā)

2025-06-09 10:15:00

FastAPIPython

2025-06-04 08:05:00

Peewee?數(shù)據(jù)庫開發(fā)

2025-06-03 10:00:00

LiteLLMPython
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號