帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
22
帖子
2
勋章
1628
Y币

获取附件信息异步问题

[复制链接]
发表于 2024-3-19 10:41:42

需求是采购合同终审前检查单据是否上传附件,下图是前端脚本



但是获取附件信息的函数是异步的,效果见下图,先执行的132行,后执行的126行,也就是还没等获取到附件信息结果就已经走完了


请问该如何设置先获取到附件信息再进行下去呀

本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
142
帖子
2
勋章
4万+
Y币
参考置顶帖  2-1案例  里面有对应的写法
22
帖子
2
勋章
1628
Y币
本帖最后由 BIP422709 于 2024-3-19 11:19 编辑
yonyouhmm · 2024-3-19 10:49参考置顶帖  2-1案例  里面有对应的写法

老师,我试过了,没有拦截成功,还是通过审批了,您能帮我看看代码吗



async function processPromise(objectId, returnPromise) {
  let promise = window.YYCooperationBridge.YYGetFileListV2({
    objectName: 'diwork_yuncai',
    objectId: objectId,
    ts: Date.now(),
    pageSize: 10,
    extraParams: { authId: '' },
  });
  const result = await promise;
  if (result.count == 0) {
    cb.utils.alert('附件不能为空');
    return returnPromise.reject();
  } else {
    return returnPromise.resolve();
  }
}


viewModel.on('beforeWorkflowAction', function (param) {
  var actionCode = param.data.actionName;
  var taskName = param.data.taskName;
  var returnPromise = new cb.promise();
  if (actionCode == 'agree' && taskName == '活动2') {
    let objectId = viewModel.get('stockStampFileId').getValue();
    let result = processPromise(objectId, returnPromise);
    console.log(result)
    console.log( returnPromise)
  }
  console.log(returnPromise)
  return returnPromise;
});

本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
142
帖子
2
勋章
4万+
Y币
BIP422709 · 2024-3-19 11:15老师,我试过了,没有拦截成功,还是通过审批了,您能帮我看看代码吗



断点走到reject了嘛    如果在beforeWorkFlowAction里 直接return  false能拦截嘛
22
帖子
2
勋章
1628
Y币
本帖最后由 BIP422709 于 2024-3-19 13:56 编辑
yonyouhmm · 2024-3-19 11:29断点走到reject了嘛    如果在beforeWorkFlowAction里 直接return  false能拦截嘛

可以进入断点,return false也不能拦截

本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
142
帖子
2
勋章
4万+
Y币
BIP422709 · 2024-3-19 13:51可以进入断点,return false也不能拦截

viewModel.on('beforeWorkflowAction', (args) => {
  var returnPromise = new cb.promise();
  let objectId = viewModel.get('new7').getValue();
  let result = processPromise(objectId, returnPromise);
  args.resolve(returnPromise).then(() => {
    return returnPromise;
  });
});

改成这样
22
帖子
2
勋章
1628
Y币
本帖最后由 BIP422709 于 2024-3-20 14:01 编辑
yonyouhmm · 2024-3-19 14:10viewModel.on('beforeWorkflowAction', (args) => {
  var returnPromise = new cb.promise();
  let objectId = viewModel.get('new7').getValue();


老师,控制台报错了

本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
22
帖子
2
勋章
1628
Y币
本帖最后由 BIP422709 于 2024-3-19 15:18 编辑
yonyouhmm · 2024-3-19 14:10viewModel.on('beforeWorkflowAction', (args) => {
  var returnPromise = new cb.promise();
  let objectId = viewModel.get('new7').getValue();
老师您看看代码对不对

现在报错这个,点审批没反应



本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
142
帖子
2
勋章
4万+
Y币
BIP422709 · 2024-3-19 15:17老师您看看代码对不对

现在报错这个,点审批没反应

看下args里有没有resovle  我用的自建单据试的是可以的
22
帖子
2
勋章
1628
Y币
本帖最后由 BIP422709 于 2024-3-20 09:39 编辑
yonyouhmm · 2024-3-19 19:16看下args里有没有resovle  我用的自建单据试的是可以的


老师,里面是有resolve的

本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
12下一页
您需要登录后才可以回帖 登录

本版积分规则