如何在Observable中返回模拟数据?

时间:2016-06-20 11:43:40

标签: angular rxjs observable

假设我们在返回Observable的服务中使用此方法:

class CMFCMyPropertyGridCtrl : public CMFCPropertyGridCtrl {

public:
    virtual int OnDrawProperty( CDC * pDC, CMFCPropertyGridProperty* pProp ) const {
        // Implement check to see, if this is the property we are looking for
        // If it is, set an appropriate text color
        pDC->SetTextColor( RGB( 0xff, 0x0, 0xff ) );

        // Call the default implementation to perform rendering
        return CMFCPropertyGridCtrl::OnDrawProperty( pDC, pProp );
    }
};

如何修改此代码以返回模拟数据速率,然后再建立一个实际的GET请求者?

getSearchResults(request: LocationSearchRequest){
      return this.http.get(this.getApiUrl(request))
            .map(res => <LocationSearchResponse> res.json())    
            .catch(this.handleError);    
}

这不是一个重复的问题。这与测试,茉莉和angualr2测试无关。

4 个答案:

答案 0 :(得分:4)

我前段时间有同样的话题。也可以使用以下方法:

  

Observable.create()

它由以下代码解决(使用typescript):

getElementTemplateNames() : Observable<string[]> {
let names : string[] = MockedElementData.getNames();
return Observable.create( observer => {
    observer.next(names);
    observer.complete();
});}

MockedElementData 保存数据。

Observable的import语句是:

import { Observable } from "rxjs/Observable";

答案 1 :(得分:2)

你可以这样做:

Observable.of(MOCKEDDATA)

您还可以添加延迟:

Observable.of(MOCKEDDATA).delay(1000)

答案 2 :(得分:1)

我通过以下代码解决了这个问题。

 this.treeService
          .getData()
          .pipe(takeUntil(this.destroy$))
          .subscribe(
            (fa) => {              
              this.Items = fa.map(f => new TreeviewItem(f));                          
              console.log('this.Items', this.Items);              
            }
          );

请考虑您的树节点需要在所有级别上具有。 文字:“文字” 值:“值”

答案 3 :(得分:0)

Xavi的答案很简单,但对我却不起作用-我这样调整:

import { of } from 'rxjs';

然后:

return of(MOCKEDDATA);

希望这对其他人也有帮助!