Bmob和Promise的完美結(jié)合

試用場景涛漂,通過bmob條件查詢一個表篇梭,然后通過表返回的數(shù)據(jù)氢橙,在去查詢多個表,在把多個表查詢到的數(shù)據(jù)全部整合成一條數(shù)據(jù)恬偷,直到最后渲染到視圖層悍手,也就是各種異步操作。

先來看看Bmob的查詢

const query = new Bmob.Query(Bmob.Object.extend("all"))
query.find({
  success: (res) => {
    alert("查詢成功")
  },
  error: (error) => {
    alert("查詢失敗: " + error.code + " " + error.message);
  }
});

綜上所述,那么需要在success方法中寫入多個表查詢坦康,包裹多少層還不知道竣付。此時Promise完美登場。

Promise —— Javascript 中的神器

ES6 原生提供了 Promise 對象滞欠。
所謂 Promise卑笨,就是一個對象,用來傳遞異步操作的消息仑撞。它代表了某個未來才會知道結(jié)果的事件(通常是一個異步操作)赤兴,并且這個事件提供統(tǒng)一的 API,可供進一步處理隧哮。

const promise = new Promise(function(resolve, reject) {
 if (/* 異步操作成功 */){
 resolve(value);
 } else {
 reject(error);
 }
});

promise.then(function(value) {
 // success
}, function(value) {
 // failure
});

基本的 api

Promise.resolve()
Promise.reject()
Promise.prototype.then()
Promise.prototype.catch()
Promise.all() // 所有的完成
Promise.race() // 競速桶良,完成一個即可

結(jié)合Bmob


const BmobAll = new Promise((resolve, reject) => {
   query = new Bmob.Query(Bmob.Object.extend("all"))
   query.find({
     success: (res) => {
       resolve(res)
     },
     error: (error) => {
       reject(error)
     }
   });
 })

BmobAll.then(value => {
 // success
 // 這里即可再次進行 bmob 查表操作;
}, value => {
 // failure
});

多個表同時查詢沮翔;

//任務(wù)1
const p1 = new Promise((resolve, reject) => {
 query = new Bmob.Query(Bmob.Object.extend("P1"))
 query.find({
   success: (res) => {
     resolve(res)
   },
   error: (error) => {
     reject(error)
   }
 });
})
//任務(wù)2
const p2 = new Promise((resolve, reject) => {
  query = new Bmob.Query(Bmob.Object.extend("P2"))
  query.find({
    success: (res) => {
      resolve(res)
    },
    error: (error) => {
      reject(error)
    }
  });
})
//任務(wù)3
const p3 = new Promise((resolve, reject) => {
 query = new Bmob.Query(Bmob.Object.extend("P3"))
 query.find({
   success: (res) => {
     resolve(res)
   },
   error: (error) => {
     reject(error)
   }
 });
})
//所有的任務(wù)都請求完成之后會返回他們他們所有的值陨帆。為一個數(shù)組;在這里就可以拿到所有請求的數(shù)據(jù)了采蚀。
Promise.all([p1,p2,p3]).then((val) => {
  console.log(val)
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疲牵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子纲爸,更是在濱河造成了極大的恐慌,老刑警劉巖妆够,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件识啦,死亡現(xiàn)場離奇詭異,居然都是意外死亡神妹,警方通過查閱死者的電腦和手機颓哮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸵荠,“玉大人冕茅,你說我怎么就攤上這事∮颊遥” “怎么了姨伤?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長熄赡。 經(jīng)常有香客問我姜挺,道長,這世上最難降的妖魔是什么彼硫? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任炊豪,我火速辦了婚禮凌箕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘词渤。我一直安慰自己牵舱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布缺虐。 她就那樣靜靜地躺著芜壁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪高氮。 梳的紋絲不亂的頭發(fā)上慧妄,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機與錄音剪芍,去河邊找鬼塞淹。 笑死,一個胖子當(dāng)著我的面吹牛罪裹,可吹牛的內(nèi)容都是我干的饱普。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼状共,長吁一口氣:“原來是場噩夢啊……” “哼套耕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起峡继,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤冯袍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鬓椭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颠猴,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡关划,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年小染,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贮折。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡裤翩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出调榄,到底是詐尸還是另有隱情踊赠,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布每庆,位于F島的核電站筐带,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏缤灵。R本人自食惡果不足惜伦籍,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一蓝晒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧帖鸦,春花似錦芝薇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至攻锰,卻和暖如春晾嘶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背娶吞。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工变擒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寝志。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓娇斑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親材部。 傳聞我的和親對象是個殘疾皇子毫缆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,869評論 6 13
  • Promise 對象 Promise 的含義 Promise 是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函...
    neromous閱讀 8,698評論 1 56
  • 周一 今天晚上到家乐导,兒子說約好了今天繼續(xù)玩強手棋苦丁,我說好。不過心里有點發(fā)怵物臂,萬一又像昨天晚上玩不到頭就麻煩了旺拉。不過...
    monicaqiqi閱讀 176評論 0 0
  • 小程序發(fā)布至今3周了,稍稍整理一些「數(shù)據(jù)那些事兒」棵磷;主要為了自己記錄蛾狗,因此寫得比較零散隨意。 概況 上線3周仪媒,目前...
    卡拉贊圖書館閱讀 1,550評論 0 4
  • 130. Surrounded Regions 可以分為三個步驟 初始化一個list或dequequeue = c...
    Morphiaaa閱讀 338評論 0 0