站长图库向大家介绍了微信小程序,同步执行等相关知识,希望对您有所帮助
前言:
小程序按顺序同步执行有如下两种方式:
第一种方式:回调函数执行,后一个方法写到前一个的回调函数中从而实现顺序执行
缺点:嵌套太多,代码混轮
第二种方式:async-await 同步执行,此方法等待前面方法执行完毕才继续后续执行
优点:代码可读性高
以检查文本安全性为例给出两种不同方式代码以供参考
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 } 后续代码
回调方式
/** * 异步检查 */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}); },