如何统计 TaskRouter 工作区中的任务?

How To Count Tasks In a TaskRouter Workspace?

我是 Twilio API 的新手,我似乎无法弄清楚如何计算与 TaskRouter 工作区关联的任务。

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() 函数显然不是 return Promise; allTasks.length 始终为 1(因为 allTask​​s 是一个 TaskListInstance,而不是数组);并且文档不是很详细 - 它有基本示例,但我似乎找不到具体细节 API 文档可以告诉我关于 each() 或 TaskListInstance 我真正需要了解的内容类型。

提前致谢。

用一点旧方法弄明白了 "sticktoitiveness." 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++;
});