Как считать задачи в рабочем пространстве TaskRouter? - PullRequest
0 голосов
/ 16 декабря 2018

Я новичок в API Twilio, и я не могу понять, как считать задачи, связанные с рабочей областью 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;allTasks.length всегда равен 1 (потому что allTasks - это TaskListInstance, а не массив);и документация не очень подробная - в ней есть базовые примеры, но я не могу найти документацию по API, которая могла бы рассказать мне, что мне действительно нужно знать о каждом () или типе TaskListInstance.

Заранее спасибо.

1 Ответ

0 голосов
/ 16 декабря 2018

Понял это с небольшим количеством старой "липкости".Функция each () на самом деле принимает два параметра.Первый - это экземпляр TaskListInstanceEachOptions, который включает в себя элемент «done», который вызывается при исчерпании списка задач.Это, вероятно, можно написать более элегантно - больше Javascript-у - но вот что я наконец нашел, что работает:

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++;
});
...