[]
        
(Showing Draft Content)

GC.Spread.CalcEngine.Functions.AsyncFunction

类: AsyncFunction

CalcEngine.Functions.AsyncFunction

继承关系

Table of contents

构造方法

属性

方法

构造方法

constructor

new AsyncFunction(name, minArgs?, maxArgs?, description?)

表示用于定义异步函数的抽象基类

代码示例

class WeatherFunction extends GC.Spread.CalcEngine.Functions.AsyncFunction {
    constructor () {
        super('WEATHER', 0, 0, {
            description: "Get Weather",
            parameters: []
        });
    }
    evaluate (context) {
        setTimeout(function () { context.setAsyncResult('sunny'); }, 100);
    }
}
spread.addCustomFunction(new WeatherFunction());
spread.getActiveSheet().setFormula(0, 0, '=WEATHER()');

参数

属性名 类型 说明
name string 函数的名称
minArgs? number 函数的最小参数数目
maxArgs? number 函数的最大参数数目
description? IFunctionDescription 函数的描述

Overrides

Function.constructor

属性

maxArgs

maxArgs: number

函数的最大参数数量

继承自

Function.maxArgs


minArgs

minArgs: number

函数的最小参数数量

继承自

Function.minArgs


name

name: string

函数的名称

继承自

Function.name


typeName

typeName: string

支持序列化的类型名称字符串

继承自

Function.typeName

方法

acceptsArray

acceptsArray(argIndex): boolean

函数是否接收指定参数的数组值

function

参数

属性名 类型 说明
argIndex number 参数的索引

返回值

boolean

true时, 函数接收指定参数的数组值;若为false则不接收

继承自

Function.acceptsArray


acceptsError

acceptsError(argIndex): boolean

函数是否可以处理错误值

function

参数

属性名 类型 说明
argIndex number 参数的索引

返回值

boolean

true时, 函数可以处理指定参数的错误值;若为 false则不可处理

继承自

Function.acceptsError


acceptsMissingArgument

acceptsMissingArgument(argIndex): boolean

Evaluate方法是否可以处理丢失的参数

参数

属性名 类型 说明
argIndex number 参数的索引

返回值

boolean

true时, Evaluate方法可以处理缺失的参数; 如果为false则不可处理

继承自

Function.acceptsMissingArgument


acceptsReference

acceptsReference(argIndex): boolean

函数是否接收指定参数的引用值

function

参数

属性名 类型 说明
argIndex number 参数的索引

返回值

boolean

true时, 函数接收指定参数的引用值;若为 false则不接收

继承自

Function.acceptsReference


defaultValue

defaultValue(): any

在获取异步结果之前,返回已计算函数结果的默认值

返回值

any

获取异步结果之前计算的函数结果的默认值


description

description(): IFunctionDescription

返回函数的描述

function

返回值

IFunctionDescription

函数的描述

继承自

Function.description


evaluate

evaluate(...args): any

返回函数作为参数

参数

属性名 类型 说明
...args any 函数求值的参数

返回值

any

应用于参数的函数

继承自

Function.evaluate


evaluateAsync

evaluateAsync(context, args): any

返回函数作为参数

参数

属性名 类型 说明
context AsyncEvaluateContext 计算上下文
args any 函数求值的参数

返回值

any

应用于参数的函数


evaluateMode

evaluateMode(): AsyncFunctionEvaluateMode

设置如何重新计算公式

返回值

AsyncFunctionEvaluateMode

计算模式


findBranchArgument

findBranchArgument(test): number

查找分支参数

代码示例

function EqualsFunction() {
    this.name = 'Equals';
    this.maxArgs = 3;
    this.minArgs = 3;
}
EqualsFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
EqualsFunction.prototype.evaluate = function(logicalTest, valueIfTrue, valueIfFalse) {
    return logicalTest ? valueIfTrue : valueIfFalse;
}
EqualsFunction.prototype.isBranch = function() {
    return true;
}
EqualsFunction.prototype.findTestArgument = function() {
    return 0;
}
EqualsFunction.prototype.findBranchArgument = function(logicalTestResult) {
    if (logicalTestResult === true) {
        return 1;
    }
    return 2;
}
var equalsFunction = new EqualsFunction();
var spread = GC.Spread.Sheets.findControl("ss") || GC.Spread.Sheets.findControl("sampleDiv");
spread.addCustomFunction(equalsFunction);

参数

属性名 类型 说明
test any 测试

返回值

number

将作为分支条件的参数的索引

继承自

Function.findBranchArgument


findTestArgument

findTestArgument(): number

在分支此函数时查找测试参数

代码示例

function EqualsFunction() {
    this.name = 'Equals';
    this.maxArgs = 3;
    this.minArgs = 3;
}
EqualsFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
EqualsFunction.prototype.evaluate = function(logicalTest, valueIfTrue, valueIfFalse) {
    return logicalTest ? valueIfTrue : valueIfFalse;
}
EqualsFunction.prototype.isBranch = function() {
    return true;
}
EqualsFunction.prototype.findTestArgument = function() {
    return 0;
}
EqualsFunction.prototype.findBranchArgument = function(logicalTestResult) {
    if (logicalTestResult === true) {
        return 1;
    }
    return 2;
}
var equalsFunction = new EqualsFunction();
var spread = GC.Spread.Sheets.findControl("ss") || GC.Spread.Sheets.findControl("sampleDiv");
spread.addCustomFunction(equalsFunction);

返回值

number

将被视为测试条件的参数索引

继承自

Function.findTestArgument


interval

interval(): number

返回时间间隔

返回值

number

以毫秒为单位的间隔


isBranch

isBranch(): boolean

获取表示此函数是否由参数作为条件分支的值

代码示例

function EqualsFunction() {
    this.name = 'Equals';
    this.maxArgs = 3;
    this.minArgs = 3;
}
EqualsFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
EqualsFunction.prototype.evaluate = function(logicalTest, valueIfTrue, valueIfFalse) {
    return logicalTest ? valueIfTrue : valueIfFalse;
}
EqualsFunction.prototype.isBranch = function() {
    return true;
}
EqualsFunction.prototype.findTestArgument = function() {
    return 0;
}
EqualsFunction.prototype.findBranchArgument = function(logicalTestResult) {
    if (logicalTestResult === true) {
        return 1;
    }
    return 2;
}
var equalsFunction = new EqualsFunction();
var spread = GC.Spread.Sheets.findControl("ss") || GC.Spread.Sheets.findControl("sampleDiv");
spread.addCustomFunction(equalsFunction);

返回值

boolean

true 时,该实例是分支;若 false则不是

继承自

Function.isBranch


isContextSensitive

isContextSensitive(): boolean

确定函数的计算是否依赖于计算的上下文

返回值

boolean

true 时,函数的计算依赖于上下文;若为 false则不依赖

继承自

Function.isContextSensitive


isVolatile

isVolatile(): boolean

确定函数在计算时是否易失

返回值

boolean

true 时,则函数是易失的;若为false则不是

继承自

Function.isVolatile