Лучший способ предотвратить состязание в нескольких вызовах API chrome.storage?

Что-то просит задачуЧто-то еще вытаскивает список задач из хранилища и проверяет, есть ли там задачи.Если есть задачи, он удаляет одну, а меньший «список задач» помещается обратно в хранилище.

Между шагами 2 и 3состояние гонки может возникнуть, если произойдет несколько запросов, и одна и та же задача будет выполнена дважды.

Правильно ли разрешено «блокировать» «таблицу задач» во время «извлечения» одной задачи, чтобы предотвратить любые другие запросы?

Какое решение с наименьшим влиянием на производительность, например, задержкой выполнения, и как его следует реализовать в javascript с помощью chrome.storage API?

Некоторый код например:

function decide_response ( ) {
    if(script.replay_type == "reissue") {
            function next_task( tasks ) {
                var no_tasks = (tasks.length == 0);
                if( no_tasks ) {
                    target_complete_responses.close_requester();
                }
                else {
                    var next_task = tasks.pop();
                    function notify_execute () {
                        target_complete_responses.notify_requester_execute( next_task );
                    }
                    setTable("tasks", tasks, notify_execute);
                }
            }
            getTable( "tasks", next_tasks );
    ...
    }
...
}

Ответы на вопрос(1)

Ваш ответ на вопрос