相关疑难解决方法(0)

将承诺转换为可观察的

我试图围绕着可观察者.我喜欢observables解决开发和可读性问题的方式.在我读到的时候,好处是巨大的.

关于HTTP和集合的可观察量似乎是直截了当的.我怎样才能将这样的东西转换为可观察的模式.

这是来自我的服务组件,用于提供身份验证.我希望它能像Angular2中的其他HTTP服务一样工作 - 支持数据,错误和完成处理程序.

firebase.auth().createUserWithEmailAndPassword(email, password)
  .then(function(firebaseUser) {
    // do something to update your UI component
    // pass user object to UI component
  })
  .catch(function(error) {
    // Handle Errors here.
    var errorCode = error.code;
    var errorMessage = error.message;
    // ...
  });
Run Code Online (Sandbox Code Playgroud)

这里的任何帮助将不胜感激.我唯一的替代解决方案是创建EventEmitters.但我想这是在服务部门做事的一种可怕方式

rxjs firebase firebase-authentication angular

162
推荐指数
4
解决办法
10万
查看次数

RxJS中的链接可观察量

我正在学习RxJS和Angular 2.假设我有一个带有多个异步函数调用的promise链,它取决于前一个的结果,如下所示:

var promiseChain = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve(1);
  }, 1000);
}).then((result) => {
  console.log(result);

  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(result + 2);
    }, 1000);
  });
}).then((result) => {
  console.log(result);

  return new Promise((resolve, reject) => {
      setTimeout(() => {
      resolve(result + 3);
        }, 1000);
  });
});

promiseChain.then((finalResult) => {
  console.log(finalResult);
});
Run Code Online (Sandbox Code Playgroud)

我在不使用promise的情况下单独使用RxJS的尝试产生了以下结果:

var observableChain = Observable.create((observer) => {
  setTimeout(() => {
    observer.next(1);
    observer.complete();
  }, 1000);
}).flatMap((result) => {
  console.log(result);

  return Observable.create((observer) …
Run Code Online (Sandbox Code Playgroud)

javascript reactive-programming promise rxjs rxjs5

57
推荐指数
1
解决办法
8万
查看次数

如何在Angular2中链接Http调用?

我是Angular2和Http Observable的新手.我有一个调用Http服务并返回Observable的组件.比我订阅Observable,它工作正常.

现在,我希望在该组件中,在调用第一个Http服务之后,如果调用成功,则调用其他Http服务并返回该Observable.因此,如果第一次调用不成功,则组件返回Observable,而它返回Observable的第二次调用.

所以,问题是,链接Http调用的最佳方法是什么?有没有优雅的方式,比如monads?

http angular

56
推荐指数
2
解决办法
4万
查看次数

Angular 2:将Observable转换为Promise

问)如何将以下observable转换为promise,以便我可以调用它.then(...)

我希望转换为承诺的方法:

  this._APIService.getAssetTypes().subscribe(
    assettypes => {
        this._LocalStorageService.setAssetTypes(assettypes);
    },
    err => {
        this._LogService.error(JSON.stringify(err))
    },
    () => {}
  ); 
Run Code Online (Sandbox Code Playgroud)

它调用的服务方法:

  getAssetTypes() {
    var method = "assettype";
    var url = this.apiBaseUrl + method;

    return this._http.get(url, {})
      .map(res => <AssetType[]>res.json())
      .map((assettypes) => {
        assettypes.forEach((assettypes) => {
          // do anything here you might need....
      });
      return assettypes;
    });      
  }  
Run Code Online (Sandbox Code Playgroud)

谢谢!

promise observable typescript angular

46
推荐指数
6
解决办法
7万
查看次数