找回密码
 立即注册

QQ登录

只需一步,快速开始

KevinChen 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2020-3-3 14:37  /   查看:3769  /  回复:0
说明:
此Demo展示了如何给异步函数设置触发器的方法。
        在SpreadJS中,异步函数有三种不同的触发重算的方式,参考API:
        https://demo.grapecity.com.cn/sp ... onEvaluateMode.html
        当异步函数的evaluateMode方法返回值为GC.Spread.CalcEngine.Functions.AsyncFunctionEvaluateMode.onRecalculation时,
        函数会根据引用的单元格变化而触发重算。


核心代码(完整示例见附件):

  1. var MyFun1 = function () {
  2.     };
  3.     MyFun1.prototype = new GC.Spread.CalcEngine.Functions.AsyncFunction("MyFUN_1", 1, 255);
  4.     MyFun1.prototype.defaultValue = function () {
  5.         return "Loading...";
  6.     };
  7.     MyFun1.prototype.evaluateAsync = function (context) {
  8.                 console.log("MyFun_1 evaluateAsync");
  9.                 context.setAsyncResult(Math.random());
  10.     };
  11.         // evaluateMode
  12.         MyFun1.prototype.evaluateMode = function () {
  13.         return GC.Spread.CalcEngine.Functions.AsyncFunctionEvaluateMode.onRecalculation;
  14.     };
  15.        
  16.        
  17.     var MyFun2 = function () {
  18.     };
  19.     MyFun2.prototype = new GC.Spread.CalcEngine.Functions.AsyncFunction("MyFUN_2", 1, 255);
  20.     MyFun2.prototype.defaultValue = function () {
  21.         return "Loading...";
  22.     };
  23.     MyFun2.prototype.evaluateAsync = function (context) {
  24.                 console.log("MyFun_2 evaluateAsync");
  25.                 context.setAsyncResult(Math.random());
  26.     };
  27.         // evaluateMode
  28.         MyFun2.prototype.evaluateMode = function () {
  29.         return GC.Spread.CalcEngine.Functions.AsyncFunctionEvaluateMode.onRecalculation;
  30.     };
复制代码


异步函数触发器.html

4.43 KB, 下载次数: 84

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部