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

时间:2018-12-16 06:35:23

标签: twilio twilio-api

我是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()函数显然没有返回Promise; allTask​​s.length始终为1(因为allTask​​s是TaskListInstance,而不是数组);并且该文档不是很详细-它有一些基本示例,但是我似乎找不到能说出我真正需要了解each()或TaskListInstance类型的API的细节。

谢谢。

1 个答案:

答案 0 :(得分:1)

用一点旧的“粘性”来解决。 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++;
});