Я использую rxjs
в React Native
. Я звоню Observable.fromPromise(storage.load({key: key})).map(() => value);
показывает ошибку.
Моя версия rxjs:
"rxjs": "^6.5.3",
"rxjs-compat": "^6.5.3",
У меня есть три шага.
Step1:
rxInit().flatMap(() => {
console.log('I can not see the console log');
return rxInit()
}).subscribe(() => {
console.log('I can not see the console log');
// some code...
})
Step2 rxInit ():
import { Observable } from 'rxjs';
rxInit() {
console.log('I can see the console log')
return StorageService.shared.get('deviceuuid').flatMap((deviceuuid) => {
console.log('I can't not see the console log')
if (deviceuuid == null) {
return StorageService.shared.set('deviceuuid', this.deviceuuid);
} else {
return Observable.of(this.deviceuuid);
}
}).do((deviceuuid) => {
// some code...
})
}
Step3 о get ():
import { Observable } from 'rxjs';
import Storage from 'react-native-storage';
import AsyncStorage from '@react-native-community/async-storage';
let storage = new Storage({
size: 1000,
storageBackend: AsyncStorage,
defaultExpires: null,
})
export default class StorageService {
set(key, value) {
console.log('StorageService set');
return Observable.fromPromise(storage.save({ key: key, data: value })).map(() => value);
}
get(key) {
console.log('It is a ', storage.load({key: key})); // It is a Promise
return Observable.fromPromise(storage.load({key: key})).map(() => value);
}
remove(key) {
return Observable.fromPromise(storage.remove({key: key})).catch(() => Observable.of(null))
}
}
StorageService.shared = new StorageService();
Я ищу какой-то ответ, кто-то говорит, что это потому, что rxjs выше 6.0, поэтому я пытаюсьИспользуйте
import { from } from 'rxjs';
return from(storage.load({key: key})).map(() => value);
Это показывает
TypeError: _rxjs.from.fromPromise is not a function
или
_rxjs.from().map is not a function.
Любая помощь будет оценена.