gpt4 book ai didi

javascript - 如何在 $http.get 返回后调用函数

转载 作者:行者123 更新时间:2023-12-03 03:14:20 26 4
gpt4 key购买 nike

我已经实现了ngrx-store。我试图在 http 调用之前打开微调器。并在电话回电后将其关闭。

   getInspectionDetails(order) {
this.store.dispatch({ type: SPINNER_VISIBLE, payload: true }) //<-- spinner on
return this.$http.get(this.url+'api/Inspection/'+order.documentNumber)
.map(this.httpHelper.extractData)
.catch(this.httpHelper.handleError)
.map(payload => ({ type: INSPECT_PURCHASE_ORDER, payload }))
.subscribe(action => this.store.dispatch(action))});
}

现在我正在尝试使用

this.store.dispatch({ type: SPINNER_VISIBLE, payload: false }) 

关闭微调器。基本上,这是使用错误有效负载来关闭微调器的相同调用。但我应该把它放在哪里?

最佳答案

subscribe 方法需要 3 个参数:

httpRequest.subscribe(
action => // do something when the value arrives
error => // do something when error occurres
() => // do something when observable completes
);

或者你可以在可观察对象上使用finally方法:

getInspectionDetails(order) {
this.store.dispatch({ type: SPINNER_VISIBLE, payload: true }) //<-- spinner on
return this.$http.get(this.url+'api/Inspection/'+order.documentNumber)
.map(this.httpHelper.extractData)
.catch(this.httpHelper.handleError)
.finally(() => this.store.dispatch({ type: SPINNER_VISIBLE, payload: false }))
.map(payload => ({ type: INSPECT_PURCHASE_ORDER, payload }))
.subscribe(action => this.store.dispatch(action));
}

第二种方法可能更好,因为发生错误时不会触发完整的回调。有关此问题的更多差异:

https://github.com/angular/angular/issues/7865

关于javascript - 如何在 $http.get 返回后调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46834593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com