我在我的AngularJS(1.6.3)應用程序中發現了一個奇怪的行爲,我無法解釋。AngularJS Http請求同步處理?
我做什麼
我通過$state.go('.', {path: 'newPath'})
和兩個兄弟組件的動態參數更改爲變化作出反應,他們$doCheck
方法,如:
$doCheck() {
if(this.path !== this.$stateParams.path) {
this.path = this.$stateParams.path;
this.handleNewPath(this.path);
}
}
兩個組件做HTTP請求。我的問題出現了。
預期的行爲
由組件發起的請求不會互相影響。兩者都處理完全孤立的迴應。因此,有時候組件A首先得到它的響應,而不是先處理它,有時組件B會更快。
實際行爲
組分A發起請求,這需要大約550ms(450內容下載)。只要內容沒有完全下載,就不會執行其他請求。
我的問題
爲什麼AngularJS這樣的表現在這種情況下?我以前沒有確定過這樣的事情。通常,許多請求可以在並行中啓動。
正常行爲
更新
組分B包括Highchart。當我禁用該圖表時,所以請求被啓動,但不處理響應,請求的阻止似乎沒有了。
這看起來像一個AngularJS問題,並不直接連接到Highcharts。你對Highcharts有任何問題嗎? –