小程序的簡單踩坑

先說明图贸,我是個社會閑散人員,最近在做個微信小程序求妹,主要就是給學(xué)妹做畢設(shè)佳窑。我校的畢設(shè)要求很低制恍,大家見笑了。今天遇到個很大的坑净神,最后也是用了實際開發(fā)中萬一被項目老大看到有可能被暴打的方式解決了問題。

需求是從后臺拿一個openid鹃唯,然后查數(shù)據(jù)表有沒有記錄,如果沒有記錄的話就新增記錄瓣喊。這些都是云函數(shù)開發(fā),這是三次請求藻三。這個需求其實很簡單,問題在于我需要這三個操作順序執(zhí)行棵帽,在第二步查數(shù)據(jù)表的記錄的回調(diào)方法里面熄求,往數(shù)據(jù)表新增記錄的代碼總是出問題逗概,感覺是沒有執(zhí)行弟晚。于是開始著手解決這個問題逾苫。

推測:網(wǎng)絡(luò)請求的回調(diào)函數(shù)里面不能再發(fā)請求

這個推測其實很傻逼卿城,打斷點追查了一下就發(fā)現(xiàn)不是這個問題铅搓。回調(diào)里面可以再發(fā)請求(我個人的猜測是數(shù)據(jù)庫的回調(diào)方法里面不能再進行數(shù)據(jù)庫的操作狸吞。)

額外問題:嵌套地獄

當(dāng)我發(fā)現(xiàn)雖然沒跑通代碼勉耀,但是可讀性已經(jīng)很差蹋偏,并且連發(fā)三次請求確實嵌套太多(每次請求都寫在上一個請求的回調(diào)方法里)于是學(xué)習(xí)了一些promise風(fēng)格代碼便斥。正好改了一下我的代碼試試威始,呵呵枢纠,果然一樣沒成功黎棠。但是我并不氣餒晋渺,起碼學(xué)到了知識。操tm的木西。

推測:可以通過修改云函數(shù)實現(xiàn)

其實第一步就是從后臺拿openid,這是個云函數(shù)八千。如果云函數(shù)里面可以獲取openid同時把數(shù)據(jù)庫的查詢結(jié)果一起返回(最好還能把插入操作也給解決咯)吗讶,那這個問題或許可以解決掉恋捆。然后去官方文檔學(xué)了一下語法照皆,失敗沸停。主要是覺得水個畢設(shè)而已膜毁,又不是專門搞小程序的愤钾,這么費力調(diào)試云函數(shù)不值得瘟滨。應(yīng)該再找個更簡單的方式绰垂。

推測:監(jiān)視變量來讓這些請求變成順序執(zhí)行的

其實這個想法很簡單室奏,設(shè)置一兩個變量做標(biāo)記劲装。比如設(shè)置倆變量:run_step2(可執(zhí)行第二步)胧沫,run_step3(可執(zhí)行第三步)占业,都是布爾類型绒怨。然后監(jiān)視倆變量谦疾。第一步的回調(diào)里面把step2設(shè)置成true南蹂,第二步的回調(diào)里面把step3設(shè)置成true念恍。然后監(jiān)視到這倆變量都是true的時候執(zhí)行第三步六剥。想法就是這樣峰伙。但是我遇到了別的問題……

1.照著官方文檔的寫法沒監(jiān)聽成功疗疟。我還去查了一下瞳氓,為什么官網(wǎng)的demo是component而小程序開始都是page策彤,page和component一起寫還報錯。還有人給我說單獨寫component再引入進來店诗。我覺得不是這個問題。還有人說page和component一樣用庞瘸,雖然我沒在查具體啥區(qū)別捧弃,但是監(jiān)聽的代碼寫在page里面也沒成功恕洲。

2.然后我想著有沒有簡單的方式實現(xiàn)原生js的監(jiān)聽塔橡。然后百度上給了我一堆vuejs里面watch的用法…淦霜第。后來找到了一個原生js實現(xiàn)watcher的博客,我看了一下泌类,略顯復(fù)雜,我這個沒學(xué)過js沒搞過前端的人理解起來略顯費勁底燎。主要是也不知道在小程序里效果咋樣……我就給人水個畢設(shè),為什么要這么為難我双仍。

最終:我選擇了不停獲取變量的值

其實還是和監(jiān)聽的原理一樣,只是監(jiān)聽代碼沒寫出來朱沃,于是有了這種想法苞轿。我發(fā)現(xiàn)js里面的interval和timeout用起來真tmd方便逗物,這肯定是為了處理我這種情況搬卒。欺騙自己ing翎卓,改bug主要是控制變量法契邀。

簡單粗暴

現(xiàn)在再看看這段代碼失暴,真是被自己秀到了,為了水畢設(shè)人真是什么代碼都寫得出來逗扒。

這個status其實就代替了我剛才說的step1和step2了古戴,多寫了幾個狀態(tài)缴阎。我感覺自己對這種開發(fā)真的愛不起來允瞧,給別人水完畢設(shè)就告別小程序了。困死我了述暂,頭疼,晚安畦韭。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市艺配,隨后出現(xiàn)的幾起案子察郁,更是在濱河造成了極大的恐慌转唉,老刑警劉巖皮钠,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赠法,死亡現(xiàn)場離奇詭異,居然都是意外死亡砖织,警方通過查閱死者的電腦和手機款侵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門侧纯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人眶熬,你說我怎么就攤上這事妹笆×牵” “怎么了晾浴?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵牍白,是天一觀的道長脊凰。 經(jīng)常有香客問我茂腥,道長狸涌,這世上最難降的妖魔是什么最岗? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任帕胆,我火速辦了婚禮般渡,結(jié)果婚禮上懒豹,老公的妹妹穿的比我還像新娘。我一直安慰自己脸秽,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布记餐。 她就那樣靜靜地躺著,像睡著了一般片酝。 火紅的嫁衣襯著肌膚如雪囚衔。 梳的紋絲不亂的頭發(fā)上雕沿,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音晦炊,去河邊找鬼鞠鲜。 笑死断国,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的榆苞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼坐漏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了赊琳?” 一聲冷哼從身側(cè)響起街夭,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤躏筏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后趁尼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體埃碱,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡酥泞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了芝囤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片似炎。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖羡藐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情传睹,我是刑警寧澤耳幢,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布欧啤,位于F島的核電站睛藻,受9級特大地震影響邢隧,放射性物質(zhì)發(fā)生泄漏店印。R本人自食惡果不足惜倒慧,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一按摘、第九天 我趴在偏房一處隱蔽的房頂上張望纫谅。 院中可真熱鬧炫贤,春花似錦付秕、人聲如沸兰珍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猛计。三九已至唠摹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間勾拉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工望艺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肌访。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像吼驶,于是被迫代替她去往敵國和親惩激。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

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