代码之家  ›  专栏  ›  技术社区  ›  Mike Waldron

如何计算任务路由器工作区中的任务?

  •  0
  • Mike Waldron  · 技术社区  · 7 年前

    我是Twilio API的新手,我似乎不知道如何计算与任务路由器工作区相关联的任务。

    const client = require('twilio')(accountSid, authToken);
    
    client.taskrouter.workspaces.each(workspace => {
        const allTasks = client.taskrouter.workspaces(workspace.sid).tasks;
        var taskCount = 0;
    
        allTasks.each(task => {
            taskCount++;
        });
    })
    

    很简单… 但我不知道这个过程什么时候结束 . 这个each()函数显然不会返回承诺;alltasks.length始终是1(因为alltasks是tasklistinstance,而不是数组);而且文档不是很详细-它有一些基本的示例,但我似乎找不到nuts and bolts API文档,这些文档将告诉我关于每个()或tasklistinstance真正需要了解的内容。类型。

    事先谢谢。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Mike Waldron    7 年前

    用一点旧的“粘性”来解决这个问题,each()函数实际上有两个参数。第一个实例是tasklistinstanceeachoptions实例,其中包含一个“done”元素,该元素是在任务列表用尽时调用的函数。这篇文章可能写得更优雅一些,更多的是javascript-y,但我最终发现这是可行的:

    const allTasks = client.taskrouter.workspaces(workspace.sid).tasks;
    var tasksEvaluated = 0;
    
    var opts = {};
    opts.done = function() { console.log('Done. Total # of tasks evaluated: ' + tasksEvaluated)};
    
    allTasks.each(opts, task => {
        tasksEvaluated++;
    });