找回密码
 立即注册

QQ登录

只需一步,快速开始

AsIAm

注册会员

14

主题

43

帖子

131

积分

注册会员

积分
131
AsIAm
注册会员   /  发表于:2024-3-22 15:55  /   查看:2411  /  回复:6
10金币
本帖最后由 Richard.Huang 于 2024-4-3 17:39 编辑



产品:SpreadJS


=IF(TEST(" ",B10,"leaf_node"),"CCC","ZZZ")上面的公式  IF是内置的公式,TEST是自定义的异步公式函数
现在有两个问题:
一:实际解析公式时,IF 会等待 TEST 公式返回结果后再进行后续判断么?
二:当执行异步公式 TEST.prototype.evaluateAsync(context, ...arg) 方法时,我如何拿到 异步公式的定义内容,以当前例子为例,我想得到  'TEST(" ",B10,"leaf_node")'  这个公式,因为我需要这个公式作为参数请求接口

6 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-22 16:27:29
沙发
您好,您的两个问题我来进行分别回答,首先自定义异步公式是有一个defaultValue的,如果您没有设置,那么默认为0,因此当您的TEST公式结果还没返回时,您的公式单元格会以默认值参与计算,等您返回时再重新计算。
image.png282485656.png

对于您的第二个问题我不太明白,您所说的想得到这个异步公式是什么意思,得到公式名TEST吗,如果是的话,您在编写代码时就已经知道这个公式名是什么了,为什么需要再获取呢》能否详细描述一下您的需求和场景,方便我们更好得为您提供对应的解决方案
回复 使用道具 举报
AsIAm
注册会员   /  发表于:2024-3-22 19:22:55
板凳
比如我在  B11 设置了 公式  =IF(TEST(" ",B10,"leaf_node"),"CCC","ZZZ")
然后我复制这个到 C11 公式就会变成 =IF(TEST(" ",B11,"leaf_node"),"CCC","ZZZ")

执行 B11 公式时,在异步公式 TEST中, 我希望能得到   TEST(" ",B10,"leaf_node")  这个公式内容,然后将  'TEST(" ",B10,"leaf_node") '  传递给接口

同时,执行 C11 公式时,在异步公式 TEST中, 我希望能得到   TEST(" ",B11,"leaf_node") 这个公式内容
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-25 13:45:20
地板
AsIAm 发表于 2024-3-22 19:22
比如我在  B11 设置了 公式  =IF(TEST(" ",B10,"leaf_node"),"CCC","ZZZ")
然后我复制这个到 C11 公式就会 ...

您所说的公式的内容,是公式名+传入公式的参数是吗?
公式名您自己已经知晓了,传入的参数在evaluateAsync方法中可以获取:
image.png237529601.png
回复 使用道具 举报
AsIAm
注册会员   /  发表于:2024-3-25 17:04:14
5#
执行 TEST(" ",B10,"leaf_node")    公式的时候,
argument[1]= "",
argument[2] = B10单元格的内容,
argument[3] = "leaf_node"
我的诉求是拿到 argument[2] 所在的位置 B10,取这个单元格绑定的标签内容拿去请求接口,而不是单元格内容

所以我想要的不仅仅是单元格的内容,而是公式参数里依赖单元格位置
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-25 18:04:15
6#
AsIAm 发表于 2024-3-25 17:04
执行 TEST(" ",B10,"leaf_node")    公式的时候,
argument[1]= "",
argument[2] = B10单元格的内容,

了解了,我们目前传入异步函数计算的参数只有被引用单元格的值,没有被引用单元格的位置等信息,如果您确实对这个有需求,建议自己获取被触发的单元格的公式,然后通过JS的方法来解析这个字符串
image.png277440184.png
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-3 17:39:18
7#
您好,由于您长时间未回帖,本贴就先作结帖处理了,后续如果有其他新的问题,欢迎继续发新帖询问
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部