Просмотр исходного кода

Wrap recompile response handlers in $applyAsync (#4253)

GitOrigin-RevId: 80e5652b88ba70b3ea1aef2cf24430597574353e
Alf Eaton 5 лет назад
Родитель
Сommit
9b9d6f679e
1 измененных файлов с 22 добавлено и 16 удалено
  1. 22 16
      services/web/frontend/js/ide/pdf/controllers/PdfController.js

+ 22 - 16
services/web/frontend/js/ide/pdf/controllers/PdfController.js

@@ -832,27 +832,33 @@ App.controller(
         .then(function (response) {
           const { data } = response
           const compileTimeClientE2E = performance.now() - t0
-          $scope.pdf.view = 'pdf'
-          $scope.pdf.compiling = false
-          parseCompileResponse(data, compileTimeClientE2E)
+          $scope.$applyAsync(() => {
+            $scope.pdf.view = 'pdf'
+            $scope.pdf.compiling = false
+            parseCompileResponse(data, compileTimeClientE2E)
+          })
         })
         .catch(function (response) {
           const { status } = response
-          if (status === 429) {
-            $scope.pdf.rateLimited = true
-          }
-          $scope.pdf.compiling = false
-          $scope.pdf.renderingError = false
-          $scope.pdf.error = true
-          $scope.pdf.view = 'errors'
-          if (window.showNewLogsUI) {
-            $scope.clsiErrors = { error: true }
-            $scope.shouldShowLogs = true
-            $scope.pdf.compileFailed = true
-          }
+          $scope.$applyAsync(() => {
+            if (status === 429) {
+              $scope.pdf.rateLimited = true
+            }
+            $scope.pdf.compiling = false
+            $scope.pdf.renderingError = false
+            $scope.pdf.error = true
+            $scope.pdf.view = 'errors'
+            if (window.showNewLogsUI) {
+              $scope.clsiErrors = { error: true }
+              $scope.shouldShowLogs = true
+              $scope.pdf.compileFailed = true
+            }
+          })
         })
         .finally(() => {
-          $scope.lastFinishedCompileAt = Date.now()
+          $scope.$applyAsync(() => {
+            $scope.lastFinishedCompileAt = Date.now()
+          })
         })
     }