小程序云函数 异步请求
单层请求
exports.main = async (event, context) => { const {from,to,date,message} = event;await db.collection('chatRoom') .where({ chat:_.all([from,to]) }).update({ data:{ message : _.push({from,to,date,message}) } })
.then(res => return res)
.catch(err => return err) } }
多层请求嵌套使用 try catch
// 云函数入口函数 exports.main = async (event, context) => { const {from,to,date,message} = event; try {
//第一层 let res = await db.collection('chatRoom') .where({ chat:_.all([from,to]) }).update({ data:{ message : _.push({from,to,date,message}) } })
//第二层 会等待第一层结果返回 if(res.stats.updated === 0) { //注意数据库调用返回没有result|云函数调用有 res = await db.collection('chatRoom').add({ data:{ chat: [from,to], messages:[{from,to,date,message}], date:date } }) } return res } catch (error) { return error } }