流程组件流程成功等事件支持promise
从46版本开始流程组件的流转成功等事件支持了异步调用,即可以执行了相关的数据集保存、服务请求调用等逻辑后再关闭页面
支持的事件有流转成功、回退成功、转发成功等即流程确认框点确定执行的流程成功事件,默认是事件执行后就关闭页面,在事件中调用异步的操作可能会操作不成功,46版本之后事件支持了event.promises,把需要执行返回promise,放到event.promises中就可以控制都执行完再关闭页面。
具体可以参考如下,在流转成功事件中同时调用数据集的保存和服务请求,都执行后再关闭页面,如果执行的时间较长可以自行添加遮罩层等
onWfmuiAdvanceSuccess = (event) => {
let restData0 = this.comp("restData0");
let mainData = this.comp("mainData");
let serviceRequest0 = this.comp("serviceRequest0");
restData0.newData({defaultValues : [{
name : mainData.getValue("name")+"流程成功",
frq : wx.Date.toString(new Date(), wx.Date.STANDART_FORMAT_SHOT),
frqsj : wx.Date.toString(new Date(), wx.Date.STANDART_FORMAT)
}]});
let dataSave = new Promise((resolve,reject) =>{
restData0.saveData({"onSuccess":function(){
resolve();
},"onError":function(){
reject();
}});
})
let serviceSend = new Promise((resolve,reject) =>{
serviceRequest0.send().then(function(){
resolve();
},function(){
reject();
});
})
event.promises.push(dataSave);
event.promises.push(serviceSend);
}