簡體   English   中英

如何在角度中使用可觀察和觀察者?

[英]How do I use observable and observer in angular?

我來自同步編程背景,很難理解可觀察性。

這是我的服務/提供者的摘錄(Ionic 2項目)

return this.http.get(`${this.serverApi}`)
  .map(res => <Response[]>res.json());

我將通過LoginPage訂閱。 我對此有幾個問題。

  1. 即使我沒有這樣聲明,上述代碼是否也會返回可觀察/觀察者?

  2. 響應為JSON。 如何進行JSON的某些檢查/處理並執行某些操作,例如

     res.auth_token==true 

    然后做

      localStorage.setItem(res.auth_token) 

    我相信應該在提供程序類中完成。 只是一個典型的提示/示例就很棒。

  3. 請求到達訂閱方法時,請求實際上會發生嗎?

  4. 從Angular 2 Service創建和返回Observable時提及Subject和ReplaySubject。 我應該改用它們嗎?

  1. 該代碼將返回一個Observable

  2. 您可以將回調主體更改為塊並添加所需的代碼

return this.http.get(`${this.serverApi}`)
  .map(res => {
     let x = <Response[]>res.json();
     // do something with x
     res.auth_token == true;
     return res; // with a block body an explicit`return` is required
  });
  1. 是的,在響應到達時,調用.subscribe()將執行http.get() ,然后執行所有后續運算符。 沒有.subscribe()什么都不會發生。

注意:某些Angular API期望使用Observable ,在這種情況下,您不能調用subscribe()因為subscribe()返回的是Subscription而不是Observable

  1. 這取決於您要完成的工作。 如果使用http.get() ,則已經可以觀察到了,並且不需要SubjectReplaySubject或任何其他可能性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM