util.AsyncStorage

Расширяет util.Storage.

Хранилище, которое предоставляет асинхронный доступ к значениям по ключам.

Конструктор | Методы

Конструктор

util.AsyncStorage()

Методы

Имя Возвращает Описание
add(key, object)

util.Storage

Добавляет объект в хранилище.

Унаследован от util.Storage.

define(key[, depends, resolveCallback[, context]])

util.AsyncStorage

Определяет в хранилище асинхронное значение.

get(key)

Object

Возвращает объект, хранящийся под указанным ключом, или исходный key, в случае, если это не строка.

Унаследован от util.Storage.

isDefined(key)

Boolean

Проверка доступности ключа в хранилище.

remove(key)

util.Storage

Удаляет пару "ключ: значение" из хранилища.

Унаследован от util.Storage.

require(keys[, successCallback[, errorCallback[, context]]])

vow.Promise

Асинхронный запрос на получение значений из хранилища.

Описание методов

define

Определяет в хранилище асинхронное значение.

Возвращает ссылку на себя.

Параметры:

Параметр Значение по умолчанию Описание
key *

Тип: String

Ключ, по которому можно будет произвести асинхронный вызов.

depends

Тип: String[]

Массив ключей значений из текущего хранилища, которые должны быть проинициализированы перед текущим. Этот аргумент может быть пропущен.

resolveCallback *

Тип: Function

Функция, которая определяет значение, доступное по ключу. Первым аргументом в resolveCallback поступит provide-функция, в которую нужно будет передать значение. Вызов provide-функции может быть отложен во времени. Последующие аргументы — это значения из хранилища, указанные в зависимостях. Порядок модулей будет соответствовать порядку в массиве depends.

context

Тип: Object

Контекст исполнения функции.

* Обязательный параметр/опция.

Примеры:

1.

asyncStorage
    .define('red', function (provide) {
        provide('#FF0000');
     });

2.

asyncStorage
    .define('green', function (provide) {
        // Вызов provide-функции может быть асинхронным.
        setTimeout(function () {
            provide('#008000');
        }, 400);
    });

3.

asyncStorage
    .define('yellow', function (provide) {
         provide('#FFFF00');
    })
    // Для определения значения ключа 'violet' необходимо значение ключа 'yellow'.
    .define('violet', ['yellow'], function (provide, yellow) {
        console.log(yellow); // #FFFF00
        setTimeout(function () {
            provide('#9B30FF');
        }, 400);
    });

4.

var asyncStorage = new ymaps.util.AsyncStorage();
asyncStorage
    .define('red', function (provide) {
        provide('#FF0000');
     })
    .define('green', function (provide) {
        setTimeout(function () {
            provide('#008000');
        }, 400);
    })
    .define('yellow', function (provide) {
         provide('#FFFF00');
    })
    .define('violet', ['yellow'], function (provide, yellow) {
        setTimeout(function () {
            provide('#9B30FF');
        }, 400);
    });
// Запрос.
asyncStorage.require(['red', 'green', 'violet'])
    .spread(function (red, green, violet) {
         console.log(red, green, violet); // #FF0000 #008000 #9B30FF
         // После перевого асинхронного обращения
         // значения будут доступны через синхронный интерфейс.
         console.log(asyncStorage.get('red'), asyncStorage.get('green'), asyncStorage.get('violet')); // #FF0000 #008000
        // Значение ключа 'yellow' теперь тоже содержится в хранилище, 
        // так как было необходимо для определения 'violet'.
         console.log(asyncStorage.get('yellow')); // #FFFF00
    });

isDefined

{Boolean} isDefined(key)

Проверка доступности ключа в хранилище.

Возвращает true, если ключ опреден, false — иначе.

Параметры:

Параметр Значение по умолчанию Описание
key *

Тип: String

Ключ значения.

* Обязательный параметр/опция.

Пример:

if (asyncStorage.isDefined('red')) {
    asyncStorage.require('red')
        .spread(function (red) {
            // ...
        });}

require

Асинхронный запрос на получение значений из хранилища.

Возвращает Promise объект, который предоставляет асинхронный доступ к значению.

Параметры:

Параметр Значение по умолчанию Описание
keys *

Тип: String|String[]

Ключ или массив ключей.

successCallback

Тип: Function

Функция обратного вызова, которая будет вызвана после получения всех значений. В функцию как аргументы будут переданы значения из хранилища. Порядок аргументов будет соответствовать порядку в массиве keys.

errorCallback

Тип: Function

Функция обратного вызова, которая будет вызвана в случае ошибки. В функцию будет передан объект ошибки.

context

Тип: Object

Контекст исполнения функции обратного вызова.

* Обязательный параметр/опция.

Примеры:

1.

asyncStorage.require(['green'])
    .spread(function (green) {
        // ...
    });

2.

var asyncStorage = new ymaps.util.AsyncStorage();
asyncStorage
    .define('red', function (provide) {
        provide('#FF0000');
     })
    .define('green', function (provide) {
        setTimeout(function () {
            provide('#008000');
        }, 400);
    });
// Запрашиваем
asyncStorage.require(['red', 'green'])
    .spread(function (red, green) {
         console.log(red, green); // #FF0000 #008000
    });