簡體   English   中英

錯誤類型錯誤:您在需要流的地方提供了“未定義”。 您可以在 Angular 服務中提供 Observable、Promise、Array 或 Iterable

[英]ERROR TypeError: You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable in Angular Services

我編寫了多個服務來訪問不同的 API。 為 post 編寫的服務正在以某種方式工作,但出現此錯誤

錯誤類型錯誤:您在需要流的地方提供了“未定義”。 您可以提供 Observable、Promise、Array 或 Iterable。 在 subscribeTo (subscribeTo.js:27)

至於為 GET 方法編寫的服務,顯示了相同的錯誤,但我沒有得到任何數據作為回報。 這是我的服務

GetClientData(): Observable<ClientDto> {
    let url_ = this.baseUrl + "https://xxxxxxxxxxxxxxxx/getClients";
    url_ = url_.replace(/[?&]$/, "");

    let options_ : any = {
        observe: "response",
        responseType: "blob",
        headers: new HttpHeaders({
            "Accept": "application/json"
        })
    };

    return this.http.request("get", url_, options_).pipe(_observableMergeMap((response_ : any) => {
        return this.processGetAllPermissions(response_);
    })).pipe(_observableCatch((response_: any) => {
        if (response_ instanceof HttpResponseBase) {
            try {
                return this.processGetAllPermissions(<any>response_);
            } catch (e) {
                return <Observable<ClientDto>><any>_observableThrow(e);
            }
        } else
            return <Observable<ClientDto>><any>_observableThrow(response_);
    }));
}

protected processGetAllPermissions(response: HttpResponseBase): Observable<ClientDto> {
    const status = response.status;
    const responseBlob = 
        response instanceof HttpResponse ? response.body : 
        (<any>response).error instanceof Blob ? (<any>response).error : undefined;

    let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
    if (status === 200) {
        return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
        let result200: any = null;
        let resultData200 = _responseText === "" ? null : JSON.parse(_responseText, this.jsonParseReviver);
        result200 = resultData200 ? ClientDto.fromJS(resultData200) : new ClientDto();
        return _observableOf(result200);
        }));
    } else if (status !== 200 && status !== 204) {
        return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
        return throwException("An unexpected server error occurred.", status, _responseText, _headers);
        }));
    }
    return _observableOf<ClientDto>(<any>null);
}

雲功能

exports.getClients = functions.https.onRequest((req, res) => {

    res.set('Access-Control-Allow-Origin', 'http://localhost:4200');
    res.set('Access-Control-Allow-Methods', 'GET', 'POST');
    res.set('Access-Control-Allow-Headers', 'Content-Type');

    if (req.method === 'OPTIONS') {
        res.end();
    }

    else
    {

        let allClients = [];
        usersClients.get()
            .then(snapshot => {
                snapshot.forEach(doc => {
                    allClients.push(doc.data());
                });
                res.send(200, {
                    "data": allClients
                })
            })
            .catch(err => {
                console.log("Error getting data", err);
            });
    }
});

沿着這些路線的東西:

return this.http.get(url_, options_).pipe(
  map(data => {
    // Transform data here
  }),
  catchError(err => {
    // Handle errors here
  })
);

暫無
暫無

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

相關問題 類型錯誤:您在需要流的地方提供了“未定義”。 你可以提供一個 Observable、Promise、Array 或 Iterable 錯誤類型錯誤:您在需要流的地方提供了“空”。 你可以提供一個 Observable、Promise、Array 或 Iterable TypeError:您在需要 stream 的地方提供了“未定義”。 部署angular時可以提供Observable、Promise、Array或Iterable Angular5:TypeError:您提供了&#39;undefined&#39;,其中包含一個流。 您可以提供Observable,Promise,Array或Iterable 類型錯誤:您提供了一個預期流的無效對象。 你可以提供一個 Observable、Promise、Array 或 Iterable 您提供了“未定義”的預期流。 您可以提供一個Observable,Promise,Array或Iterable TypeError:您在預期 stream 的地方提供了“未定義”。 您可以提供 Observable、Promise、Array 或 Iterable。 在<jasmine></jasmine> @ngrx / effects給出了TypeError:你提供了&#39;undefined&#39;來預期流。 您可以提供Observable,Promise,Array或Iterable Angular:您在需要流的地方提供了一個無效的對象。 你可以提供一個 Observable、Promise、Array 或 Iterable Angular 7 rxjs/forkJoin :您在需要流的地方提供了“未定義”。 你可以提供一個 Observable、Promise、Array 或 Iterable
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM