Office js 自定义函数中的批处理

Office js 自定义函数中的批处理,office-js,Office Js,我们使用单个api调用实现了自定义函数,并且工作正常。还尝试在单个api调用中作为批处理实现,以绑定选定行。你能分享一些有用的例子吗 谢谢 穆鲁加南特谢谢。建议的方法是将项目/参数排入全局数组。每次有新的请求进入时,计时器都会被设置为持续执行,直到没有更多的项目剩余。您需要通过在functions.json中设置“sync:false”将函数声明为异步函数。为您检查一个示例,本文有一个关于保存状态的示例 正如Keyur所说,一个全局队列和某种计时器来调度该队列将是您的最佳选择 有关示例,请参见

我们使用单个api调用实现了自定义函数,并且工作正常。还尝试在单个api调用中作为批处理实现,以绑定选定行。你能分享一些有用的例子吗

谢谢
穆鲁加南特

谢谢。建议的方法是将项目/参数排入全局数组。每次有新的请求进入时,计时器都会被设置为持续执行,直到没有更多的项目剩余。您需要通过在functions.json中设置“sync:false”将函数声明为异步函数。为您检查一个示例,本文有一个关于保存状态的示例


正如Keyur所说,一个全局队列和某种计时器来调度该队列将是您的最佳选择

有关示例,请参见

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

    function getSentimentFast(text: string): Promise<number> {
        return new Promise((resolve, reject) => {
            queue.add({
                text: text.substr(0, 1000),
                callback: function (sentiment) {
                    resolve(sentiment)
                }
            });
        });
    }
函数getFast(文本:字符串):Promise{ 返回新承诺((解决、拒绝)=>{ queue.add({ text:text.substr(0,1000), 回调:函数(情感){ 决心(情绪) } }); }); }
然后,它依靠队列中的计时器分批调度API调用并调用回调(这反过来将解决承诺)。

您好,您可以提供其他详细信息吗?您正在尝试传入一个单元格区域,还是返回一个单元格区域?您好,我正在尝试按行拖动单元格,以便在单个请求中调用api,并绑定来自同一个单元格的值。如果需要什么,请告诉我。这意味着我们可以使用批处理调用,将多个api调用聚合为一个函数api调用。谢谢Keyur。如果需要,将尝试并更新。嗨,Keyur,还有一点需要澄清的是,异步自定义函数的调试只能在托管应用程序之后进行,但在开发过程中无法调试.js文件中的自定义函数代码。例如,如果我在一个单元格中选择一个forumulae,然后输入.js文件作为动态(运行时)文件打开,这样调试就不会影响Visual studio中的源代码文件。请您对此提出建议。我们将做一个说明,但对于调试,我们仍在努力启用该功能,因此目前最好的方法是在您的浏览器中尝试。我们将切换到一个新的JS运行时(Windows上的ChakraCore),我们将分享如何调试它的详细信息,重点是首先从浏览器/VS代码开始。显然,您不再需要设置“sync:false”。谢谢Michael。还有一件事我被卡住了,那就是使用JSON文件从excel获取excel行数组(多选)到customfunction.js文件。我尝试将维度作为“矩阵”而不是“标量”,但在进行多项选择时,我仍然从excel中获取单个值。请给出建议。@Murugananth,我建议您就此问题提出一个新问题,并附上一张屏幕截图,我将其作为新问题打开,标题为“使用office js在自定义函数中批处理”。你能帮个忙吗。