util.AsyncStorage
Расширяет util.Storage.
Хранилище, которое предоставляет асинхронный доступ к значениям по ключам.
Конструктор
util.AsyncStorage()
Методы
Имя |
Возвращает |
Описание |
Добавляет объект в хранилище. Унаследован от util.Storage. |
||
define(key[, depends, resolveCallback[, context]]) |
Определяет в хранилище асинхронное значение. |
|
Object |
Возвращает объект, хранящийся под указанным ключом, или исходный key, в случае, если это не строка. Унаследован от util.Storage. |
|
Boolean |
Проверка доступности ключа в хранилище. |
|
Удаляет пару "ключ: значение" из хранилища. Унаследован от util.Storage. |
||
require(keys[, successCallback[, errorCallback[, context]]]) |
Асинхронный запрос на получение значений из хранилища. |
Описание методов
define
{util.AsyncStorage} define(key[, depends, resolveCallback[, context]])
Определяет в хранилище асинхронное значение.
Возвращает ссылку на себя.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: String Ключ, по которому можно будет произвести асинхронный вызов. |
— |
Тип: String[] Массив ключей значений из текущего хранилища, которые должны быть проинициализированы перед текущим. Этот аргумент может быть пропущен. |
|
— |
Тип: Function Функция, которая определяет значение, доступное по ключу. Первым аргументом в resolveCallback поступит provide-функция, в которую нужно будет передать значение. Вызов provide-функции может быть отложен во времени. Последующие аргументы — это значения из хранилища, указанные в зависимостях. Порядок модулей будет соответствовать порядку в массиве depends. |
|
— |
Тип: 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 — иначе.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: String Ключ значения. |
* Обязательный параметр/опция.
Пример:
if (asyncStorage.isDefined('red')) {
asyncStorage.require('red')
.spread(function (red) {
// ...
});}
require
{vow.Promise} require(keys[, successCallback[, errorCallback[, context]]])
Асинхронный запрос на получение значений из хранилища.
Возвращает Promise объект, который предоставляет асинхронный доступ к значению.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: String|String[] Ключ или массив ключей. |
— |
Тип: Function Функция обратного вызова, которая будет вызвана после получения всех значений. В функцию как аргументы будут переданы значения из хранилища. Порядок аргументов будет соответствовать порядку в массиве keys. |
|
— |
Тип: Function Функция обратного вызова, которая будет вызвана в случае ошибки. В функцию будет передан объект ошибки. |
|
— |
Тип: 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);
});
Обязательный параметр.