前言:
小程序按順序同步執(zhí)行有如下兩種方式:
第一種方式:回調(diào)函數(shù)執(zhí)行,后一個方法寫到前一個的回調(diào)函數(shù)中從而實現(xiàn)順序執(zhí)行
缺點:嵌套太多,代碼混輪
第二種方式:async-await 同步執(zhí)行,此方法等待前面方法執(zhí)行完畢才繼續(xù)后續(xù)執(zhí)行
優(yōu)點:代碼可讀性高
以檢查文本安全性為例給出兩種不同方式代碼以供參考
async-await
/** * 同步檢查是否包含敏感詞 */ async function checkString(content) { try { var res = await wx.cloud.callFunction({ name: 'checkString', data: { content: content, } }); if (res.result.errCode == 0) return true; return false; } catch (err) { console.log(err); return false; } } pubcom: async function (e) { wx.showLoading({ title: '加載中', mask: true }) var that = this var doc_id = that.data.commentID var content = that.data.comcon var formId = e.detail.formId; if (!content) { return } var isCheck = await common.checkString(content); if (!isCheck) { wx.showToast({ title: 'XXXX', image: "/assets/icon/icon-warning.png", }); return } 后續(xù)代碼
回調(diào)方式
/** * 異步檢查 */ function checkString(content,success,fail){ wx.cloud.callFunction({ name: 'checkString', data: { content: content, } }).then(res => { console.log(res); if (res.result.errCode == 0) success(res); }).catch(err => { console.error(err); fail(err); }); } pubcom: function (e) { wx.showLoading({ title: '加載中', mask: true }) var that = this var content = that.data.comcon if (!content) { return } common.checkString(content, function (res) { //成功代碼 }, function (err) { //失敗 wx.showToast({ title: 'XXXX', image: "/assets/icon/icon-warning.png", }); return}); },