Angular @ ngx-pwa / local-storage не работает - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь сохранить данные в локальном хранилище браузера, используя @ ngx-pwa / local-storage , поскольку он предоставляет дополнительные RxJs операторы поверх обычного / общего локального хранилища.

версии

        "@angular/core": "^6.1.0",
        "@ngx-pwa/local-storage": "^6.2.4"

компонент / служба:

       constructor(private storage: LocalStorage) {}
         /// *** /////

        const user: User = { firstName: 'lorem', lastName: 'ipsum' };
        this.storage.setItem('user', user).subscribe(() => {});

В приложении браузера / локальном хранилище => данные пусты.

1 Ответ

1 голос
/ 17 июня 2019

@ngx-pwa/local-storage использует indexedDB внутри, чтобы сделать операции асинхронными.

Поэтому при выполнении асинхронных операций сохранения оно сохраняется в indexedDB. Поэтому вам следует проверить соответствующую вкладку:

Application -> IndexedDB -> ngStorage -> localStorage

Обратите внимание, что этот путь может меняться в зависимости от конфигурации

Из официальных документов:

API localStorage прост в использовании, но синхронен, поэтому если вы используете слишком часто ваше приложение скоро начнет зависать.

API indexedDB является асинхронным и эффективным, но это беспорядок Использование: вы скоро попадете в ад обратного вызова, так как он не Обещания поддержки еще.

Mozilla проделала огромную работу с библиотекой localForage: a простой API, основанный на нативном localStorage, но хранящийся внутри через асинхронный indexedDB для производительности. Но это встроенный ES5 старый школьный путь, а потом в Angular беспорядок.

Этот модуль основан на той же идее, что и localForage, но встроен в ES6 + и дополнительно обернуты в RxJS Observables, чтобы быть однородными с другими угловыми модулями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...