自定义功能中的批处理

时间:2018-07-13 11:22:13

标签: office-js

我们通过单个api调用实现了自定义功能,并且运行良好。还尝试在单个api调用中实现为批处理,以绑定到选定的行。您能分享任何可行的例子吗?

谢谢 Murugananth S

2 个答案:

答案 0 :(得分:1)

像Keyur所说,全局队列和某种调度该队列的计时器将是您最好的选择。

有关示例,请参见https://gist.github.com/Zlatkovsky/84c8d5749cf98009958cf6a641b22cbd

请注意该函数如何返回Promise作为其结果,如下所示:

    function getSentimentFast(text: string): Promise<number> {
        return new Promise((resolve, reject) => {
            queue.add({
                text: text.substr(0, 1000),
                callback: function (sentiment) {
                    resolve(sentiment)
                }
            });
        });
    }

然后,它依靠队列中的计时器来分批调度API调用并调用回调(这将解决Promise)。

答案 1 :(得分:0)

谢谢。推荐的方法是将您的项/参数排队到全局数组中。每次收到新请求时,都会将计时器设置为连续执行,直到不再有其他项目为止。您需要通过在functions.json中设置“ sync:false”来声明这些函数为异步函数。查看示例,本文提供了有关保存状态的示例。

https://docs.microsoft.com/en-us/office/dev/add-ins/excel/custom-functions-overview#saving-and-sharing-state