Здесь
Внутри этой внутренней функции мы выполняем нашу асинхронную обработку, а затем, когда мы готовы, мы вызываем resol () следующим образом:
var promise = new Promise((resolve, reject) => {
setTimeout(() => {
console.log("Async Work Complete");
resolve();
}, 1000);
});
Для конкретного кода: здесь проект github для аутентификации в firebase,
getCurrentUser(){
return new Promise<any>((resolve, reject) => {
var user = firebase.auth().onAuthStateChanged(function(user){
if (user) {
resolve(user);
} else {
reject('No user logged in');
}
})
})
}
и здесь указано
Для rxjs6.0.0 использовать:
import { from } from 'rxjs';
var observableFromPromise = from(promiseSrc);
Я мог бы себе представить, что решение будет
getCurrentUser() {
return from(firebase.auth().onAuthStateChanged(function (user) {
user.getIdToken().then(x => {
return x;
})
})
)
}
или
getCurrentUser() {
firebase.auth().onAuthStateChanged(function (user) {
return from(user.getIdToken());
})
}
Мой вопрос, что эквивалентно второйфрагмент кода для from
выражения в обратном вызове?