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

{util.AsyncStorage} define(key[, depends, resolveCallback[, context]])

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

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

Параметры:

Параметр

Значение по умолчанию

Описание

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) {
         // Выводит #FF0000, #008000, #9B30FF.
         console.log(red, green, violet);
         // После первого асинхронного доступа значения можно получить через синхронный интерфейс.
         // Выводит #FF0000 #008000.
         console.log(asyncStorage.get('red'), asyncStorage.get('green'), asyncStorage.get('violet'));
         // Значение ключа 'yellow' теперь тоже содержится в хранилище, 
        // так как было необходимо для определения 'violet'.

         // Выводит #FFFF00.
         console.log(asyncStorage.get('yellow'));
    });

isDefined

{Boolean} isDefined(key)

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

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

Параметры:

Параметр

Значение по умолчанию

Описание

key*

Тип: String

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

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

Пример:

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

require

{vow.Promise} require(keys[, successCallback[, errorCallback[, context]]])

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

Возвращает 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) {
         // Выводит #FF0000 #008000.
         console.log(red, green);
    });
Предыдущая
Следующая