Store API — это необходимое дополнение для обмена транспортабельными объектами между потоками JavaScript, помимо передачи объектов через аргументы. Во время store.set
значения маршалируются в JSON и сохраняются в куче процесса, поэтому все потоки могут получить к ним доступ, а пользователи извлекают их с помощью store.get
.
Хотя это очень удобно, не рекомендуется использовать store для передачи значений внутри транзакции или запроса, поскольку его накладные расходы больше, чем передача объектов аргументами (есть дополнительная блокировка и т. д.). Кроме того, разработчики обязаны удалить ключ после использования, в то время как он автоматически управляется подсчётом ссылок при передаче аргументов.
Следующие API доступны для создания, получения и работы с хранилищами.
Создаёт хранилище по строковому идентификатору, который можно использовать позже для получения хранилища. Когда все ссылки на хранилище из всех виртуальных машин JavaScript будут удалены, хранилище будет уничтожено. Поэтому обычно рекомендуется всегда хранить ссылку в глобальной или модульной области видимости с использованием Store. Будет выдана ошибка, если идентификатор уже существует.
Пример:
var store = napa.store.create('store1');
Получает ссылку на хранилище по строковому идентификатору. Если идентификатор не существует, будет возвращено undefined
.
Пример:
var store = napa.store.get('store1');
Получает ссылку на хранилище по строковому идентификатору или создаёт его, если идентификатор не существует. Этот API удобен, когда вы хотите создать хранилище в коде, который выполняется каждым рабочим зоны, так как он не нарушает симметрию.
Пример:
var store = napa.store.getOrCreate('store1');
Возвращает количество живых хранилищ.
Интерфейс, позволяющий пользователю помещать и получать объекты в нескольких виртуальных машинах JavaScript.
Получает строковый идентификатор хранилища.
Помещает транспортабельное значение в хранилище с помощью строкового ключа. Если ключ уже существует, новое значение заменит существующее значение.
Пример:
store.set('status', 1);
Получает транспортабельное значение из хранилища по строковому ключу. Если ключ не существует, будет возвращено undefined
.
Пример:
var value = store.get('status');
assert(value === 1);
Сообщает, существует ли ключ в текущем хранилище.
Пример:
assert(store.has('status'))
Сообщает, сколько ключей хранится в текущем хранилище.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )