小编Pav*_*ati的帖子

在一次API调用后设置延迟5秒

在我的项目中,我遇到了一个挑战.ie ..我需要逐个调用多个API调用.我在这里使用RxJS flatMap运算符.它正在发挥作用.但我的额外要求是我需要为每个API调用设置10秒的延迟.我使用了'throttle'操作符但是它没有工作.我已经附上了我的代码.任何人都可以告诉我们在我的代码中我做错了什么.

public makeSubmitAPI(oncallData): Observable<any> {
        let orderPayload = this.postAPIService.prepareOrderPayload(oncallData);
        let url = "";
        let orderResponse: any;
        return this.apiCallsService.apiCall('placeOrder', orderPayload, 'post', false)
            .map((orderRes: any) => {
                orderResponse = orderRes;
                url = `orders/${orderResponse.data.id}/progress`;
                let progressPayload = this.postAPIService.prepareProgressAPIData(oncallData, orderResponse.data, this.userType);
                return progressPayload;
            }).pipe(throttle(val=> interval(5000)))
            .flatMap(progressPayload => {
                    return this.apiCallsService.apiCall(url, progressPayload, 'post', false).pipe(throttle(val=> interval(5000)))
            })
            .flatMap(progressResponse => {
                return Observable.combineLatest(
                    orderResponse.data.serviceAddresses.map((address, index) => {
                        let fullfilledAPI = this.postAPIService.prepareFullfilledAPIData(oncallData, orderResponse.data, progressResponse, this.userType, index, orderPayload);
                        return this.apiCallsService.apiCall('fullfillment', fullfilledAPI, 'post', false).map(res => res);
                    }) …
Run Code Online (Sandbox Code Playgroud)

javascript rxjs typescript angular

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

如何在规格文件Angular Testing(Jasmin / karma)中注入服务

我是写Angular单元测试用例的新手。我在控制器文件(.ts)中注入了一项服务。我将如何在规格文件中注入服务文件。

这是代码:

app.component.ts

getSortData() {
    this.sortService.sortNumberData(this.data, 'name', 'asce');
}
Run Code Online (Sandbox Code Playgroud)

sort.service.ts

sortNumberData(data, rendererKey, type) {
    // data.sort((elem1, elem2) => {
    //   //if number is undefined, then assigning `MAX_SAFE_INTEGER` to to move it to the last in order. 
    //   if (elem1[rendererKey] == undefined) elem1[rendererKey] = Number.MAX_SAFE_INTEGER;
    //   if (!elem2[rendererKey] == undefined) elem2[rendererKey] = Number.MAX_SAFE_INTEGER;
    //   return Number(elem1[rendererKey]) - Number(elem2[rendererKey]);
    // });
    // if (type == "desc") {
    //   return data.reverse();
    // }
    // return data;   
    if (!Array.isArray(rendererKey)) {
        data.sort((elem1, elem2) …
Run Code Online (Sandbox Code Playgroud)

javascript typescript karma-jasmine angular

6
推荐指数
3
解决办法
3779
查看次数

标签 统计

angular ×2

javascript ×2

typescript ×2

karma-jasmine ×1

rxjs ×1