首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有可能进行http调用,从一个组件中调用10分钟,然后通知另一个组件中的用户。

有可能进行http调用,从一个组件中调用10分钟,然后通知另一个组件中的用户。
EN

Stack Overflow用户
提问于 2018-08-16 11:37:19
回答 2查看 29关注 0票数 0

我在一个组件中有一个http调用,通常需要5-10分钟的时间来处理。在这个http呼叫期间,我希望确保所有其他路由器链路按照它们的正常行为工作。当我从这个组件切换到另一个组件时,所有组件都会为这个http调用处理列表,当这个http处理完成后,我想向用户显示一个通知,说明分析已经完成。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-16 11:40:42

您可以从服务进行调用,并让应该在服务完成时得到通知的组件订阅该服务的可观察性。

票数 1
EN

Stack Overflow用户

发布于 2018-08-16 12:36:26

根据向用户显示通知的首选方法,可以以不同的方式完成这一任务。

选项1组件驱动

将长时间http调用的执行移动到服务

代码语言:javascript
运行
复制
@Injectable()
export class MyService {

  onNotificationRecieved: Subject<any>;

  constructor(private http: HttpClient) {
  }

  myLongHttpCall() {
    this.http.get('myurl').subscribe(result => {
      this.onNotificationRecieved.next(result);
    }, err => {
      //Handle error
    });
  }
}

并让活动组件监听结果。

代码语言:javascript
运行
复制
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnDestroy {

  private _unsubscribe: Subject<any>;

  constructor(private myService: MyService) {
    this._unsubscribe = new Subject();

    myService.onNotificationRecieved.pipe(takeUntil(this._unsubscribe)).subscribe(result => {
      //Show notification to user 
    });
  }
   ngOnDestroy(): void {
        // Unsubscribe from subscription
        this._unsubscribe.next();
        this._unsubscribe.complete();
    }

}

选项2--服务驱动(例如,使用to通知)--将所有元素保留在服务中,这意味着您不必担心当前显示的组件是哪个

代码语言:javascript
运行
复制
@Injectable()
export class MyService {


  constructor(private http: HttpClient, private snackBar: MatSnackBar) {
  }

  myLongHttpCall() {
    this.http.get('myurl').subscribe(result => {
      let config = new MatSnackBarConfig();
      this.snackBar.open('Your Notification Message', 'Dismiss', config);
    }, err => {
      //Handle fail
    });
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51876127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档