---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/util.AsyncStorage.md
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/llms.txt

# util.AsyncStorage

Расширяет [util.Storage](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md).

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

[Конструктор](#constructor-summary) | [Методы ](#methods-summary)

## Конструктор {#constructor-summary}

```javascript
util.AsyncStorage()
```

## Методы {#methods-summary}

#|
|| **Имя** | **Возвращает** | **Описание** ||
|| [add](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md#add)([key](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md#add-param-key), [object](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md#add-param-object)) | [util.Storage](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md) | Добавляет объект в хранилище.

Унаследован от [util.Storage](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md#add). ||
|| [define](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md#define)([key](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md#define-param-key)[, [depends](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md#define-param-depends), [resolveCallback](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md#define-param-resolveCallback)[, [context](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md#define-param-context)]]) | [util.AsyncStorage](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md) | Определяет в хранилище асинхронное значение. ||
|| [get](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md#get)([key](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md#get-param-key)) | Object | Возвращает объект, хранящийся под указанным ключом, или исходный key, в случае, если это не строка.

Унаследован от [util.Storage](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md#get). ||
|| [isDefined](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md#isDefined)([key](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md#isDefined-param-key)) | Boolean | Проверка доступности ключа в хранилище. ||
|| [remove](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md#remove)([key](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md#remove-param-key)) | [util.Storage](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md) | Удаляет пару "ключ: значение" из хранилища.

Унаследован от [util.Storage](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.Storage.md#remove). ||
|| [require](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md#require)([keys](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md#require-param-keys)[, [successCallback](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md#require-param-successCallback)[, [errorCallback](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md#require-param-errorCallback)[, [context](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/util.AsyncStorage.md#require-param-context)]]]) | [vow.Promise](https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/vow.Promise.md) | Асинхронный запрос на получение значений из хранилища. ||
|#

## Описание методов {#method_detail}

### define {#define}

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

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

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

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`key`](#define-param-key)[*](*star) | — | Тип: String

Ключ, по которому можно будет произвести асинхронный вызов. ||
|| [`depends`](#define-param-depends) | — | Тип: String[]

Массив ключей значений из текущего хранилища, которые должны быть проинициализированы перед текущим. Этот аргумент может быть пропущен. ||
|| [`resolveCallback`](#define-param-resolveCallback)[*](*star) | — | Тип: Function

Функция, которая определяет значение, доступное по ключу. Первым аргументом в resolveCallback поступит provide-функция, в которую нужно будет передать значение. Вызов provide-функции может быть отложен во времени. Последующие аргументы — это значения из хранилища, указанные в зависимостях. Порядок модулей будет соответствовать порядку в массиве depends. ||
|| [`context`](#define-param-context) | — | Тип: Object

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

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

**Примеры:**

**1.**

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

**2.**

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

**3.**

```javascript
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.**

```javascript
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 {#isDefined}

```javascript
{Boolean} isDefined(key)
```

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

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

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`key`](#isDefined-param-key)[*](*star) | — | Тип: String

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

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

**Пример:**

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

### require {#require}

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

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

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

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание**  ||
|| [`keys`](#require-param-keys)[*](*star) | — | Тип: String\|String[]

Ключ или массив ключей. ||
|| [`successCallback`](#require-param-successCallback) | — | Тип: Function

Функция обратного вызова, которая будет вызвана после получения всех значений. В функцию как аргументы будут переданы значения из хранилища. Порядок аргументов будет соответствовать порядку в массиве keys. ||
|| [`errorCallback`](#require-param-errorCallback) | — | Тип: Function

Функция обратного вызова, которая будет вызвана в случае ошибки. В функцию будет передан объект ошибки. ||
|| [`context`](#require-param-context) | — | Тип: Object

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

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

**Примеры:**

**1.**

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

**2.**

```javascript
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);
    });
```

<!-- XLIFF_FARM_ZmE3Zjhk_CACHING -->

[*star]: Обязательный параметр.