Обнаружить работающие работники JavaScript - PullRequest
0 голосов
/ 11 января 2012

Я пишу javascript HTML5 приложение для телефонной связи. Я использую SQLite для хранения данных. Ради производительности я выполняю вставки базы данных асинхронно, то есть мне не нужно вызывать следующую операцию при обратном вызове предыдущей операции базы данных. Внутренне я считаю, что javascript создает работника для каждой операции, поэтому, так сказать, многопоточность.

Проблема сейчас в том, как мне узнать, что все работники выполнили свои задачи? например, чтобы сообщить пользователю, что все данные были сохранены?

1 Ответ

1 голос
/ 12 января 2012

Если я правильно понимаю ваш запрос, вы ставите в очередь вставки БД для асинхронного выполнения и хотите иметь возможность проверить позже, чтобы убедиться, что все запросы завершены.Я хотел бы сделать что-то вроде этого:

function asyncTask() {
        //
        // Do real work here
        //
        runningTasks--
}


//in your init section, setup a global variable to track number of tasks    
runningTasks = 0

//when you need to create a new task, increment the counter
runningTasks++;
setTimeout (asyncTask,1);



if (runningTasks > 0) {
    //something still running
} else {
    //all tasks are done.
}

На другом языке вам нужно беспокоиться о состояниях гонки при тестировании и установке выполнимых runningTasks, но AFAIK, Javascript реализован только как однопоточный, поэтомунужно беспокоиться об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...