您将如何通过Angular中的一个调用来发布和获取数据?

时间:2018-12-31 07:45:25

标签: angular http

我刚刚进行了一次采访,采访者问我-假设我使用HTTP进行了角度的发布呼叫,并且得到了200 OK的响应。这意味着将生成一个新的ID。现在,我将不得不进行单独的GET调用以获取此ID。有没有办法在一次调用中获得此ID?

我说的取决于服务器响应,如果响应具有ID,我们可以简单地订阅可观察对象并获取其值。他说不,我们只能得到确定的答复。我没有其他办法了。然后他说你听说过诺言吗?我不知道如何在使用诺言的单次通话中实现这一目标。

这就是我知道如何在Angular中对POST调用使用Promise的方法:

@Injectable()
export class WebApiPromiseService {
    headers: Headers;
    options: RequestOptions;

    constructor(private http: Http) {
        this.headers = new Headers({ 'Content-Type': 'application/json', 
                                     'Accept': 'q=0.8;application/json;q=0.9' });
        this.options = new RequestOptions({ headers: this.headers });
    }

    createService(url: string, param: any): Promise<any> {
    let body = JSON.stringify(param);
    return this.http
        .post(url, body, this.options)
        .toPromise()
        .then(this.extractData)
        .catch(this.handleError);
    }  

    private extractData(res: Response) {
        let body = res.json();
        return body || {};
    }

    private handleError(error: any): Promise<any> {
        console.error('An error occurred', error);
        return Promise.reject(error.message || error);
    }
}

0 个答案:

没有答案