一、跳转页面
跳转其他页面:当url路径对应的是app.json中tabBar配置的页面时只能使用switchTab
wx.switchTab({
url: '/pages/main/main',
})
二、异步改同步
异步请求-》同步等待结果
第一种
根据官方给出的代码片段,导入之后出现了两个文件,小白如我只用到了此文件,
promisify.js 创建好放入lib
module.exports = (api) => {
return (options, ...params) => {
return new Promise((resolve, reject) => {
api(Object.assign({}, options, { success: resolve, fail: reject }), ...params);
});
}
}
const promisify = require('../../libs/promisify.js');
const getUserInfo= promisify(wx.getUserInfo);
const login = promisify(wx.login);
第二种
给方法加上async 云函数以及数据的操作使用await,等待结果根据返回结果判断是执行return false还是继续向下执行逻辑;
bindGetUserInfo: async function(e){}
var isteach_res = await wx.cloud.callFunction({
name: 'checkTeacher',
data: {
mobile: this.data.mobile.toString(),
}
});
三、订阅消息
subscribeMessage.send
const result = await cloud.openapi.subscribeMessage.send({
touser:event.openID,
templateId:event.templateId,
page: 'pages/index/index',
lang:"zh_CN",
data: {
name2: { value: event.stuname },
date3: { value: event.dakatime },
phrase1: { value: '签到成功' },
thing4: { value: event.coursename }
}
})
return result
开启本地调试,入参:
{
"msgType":"签到",
"templateId":"",
"openID":"",
"stuname":"qwA-",
"dakatime":"1",
"coursename":"1"
}
模板呢是公众平台上随便申请的一个,结果stuname->name2一直报错,原因是测试学生名称为'学生2',经百度找到了官方文档,发送此请求的参数有规定,但由于程序内部没有与此规定保持一致,所以云函数一直提示name2 非法参数;接下来同样的情况出现在了date3,
date.DATA | 日期 | 年月日格式(支持+24小时制时间),支持填时间段,两个时间点之间用“~”符号连接 | 例如:2019年10月1日,或:2019年10月1日 15:01 |
name.DATA | 姓名 | 10个以内纯汉字或20个以内纯字母或符号 |