【问题标题】:Wait for in javascript在javascript中等待
【发布时间】:2015-12-08 09:51:28
【问题描述】:

我有一个更新数据的 JavaScript 函数。

用户可能点击了几次,我想等待第二次点击,而第一次点击还没有完成,依此类推

  $scope.isLastUpdateFinished = true;

            $scope.onSave = function (isFitToPage) {
                if (!$scope.isLastUpdateFinished)
                    while (!$scope.isLastUpdateFinished) {
                    }

                $scope.isLastUpdateFinished = false;

                    dataService.save($scope.draft, "api/Draft/UpdateDraft/").then(function (data) {
                        if (data.Succeeded && data.Message != null)
                            toaster.pop("warning", _("Dataservice_TTL_Save"), data.Message);
                        if (!data.Succeeded) {
                            modalOptions.headerText = _("Error_InRefreshList");
                            modalOptions.bodyText = data.Message;
                            modalService.showModal(errorDefaults, modalOptions);
                        }


                        if (isFitToPage) {

                            $scope.imageviewer.viewerconfig.controls.imageReload(true, true);
                        }
                        if ($scope.myOtherAside.$scope.$isShown && isFitToPage) {
                            $scope.viewerconfig.controls.imageReload(true, true);
                        }
                        $scope.isLastUpdateFinished = true;
                    });

                    
            };

【问题讨论】:

  • 禁用您的按钮,直到第一次通话未完成。
  • @singe3 谢谢,为什么if (!$scope.isLastUpdateFinished) while (!$scope.isLastUpdateFinished) { } 不能正常工作
  • 你应该添加断点来调试它,我不知道你的代码在做什么,因为这只是它的一小部分。
  • 检查了我下面的答案?

标签: javascript jquery angularjs


【解决方案1】:

通知用户该应用仍在运行如何?

$scope.isLastUpdateFinished = true;

        $scope.onSave = function (isFitToPage) {
            if (!$scope.isLastUpdateFinished)
                {
            toaster.pop("info", "Please wait...", "Request already in progress... ");
               return false;
              }

            $scope.isLastUpdateFinished = false;

                dataService.save($scope.draft, "api/Draft/UpdateDraft/").then(function (data) {
                    if (data.Succeeded && data.Message != null)
                        toaster.pop("warning", _("Dataservice_TTL_Save"), data.Message);
                    if (!data.Succeeded) {
                        modalOptions.headerText = _("Error_InRefreshList");
                        modalOptions.bodyText = data.Message;
                        modalService.showModal(errorDefaults, modalOptions);
                    }


                    if (isFitToPage) {

                        $scope.imageviewer.viewerconfig.controls.imageReload(true, true);
                    }
                    if ($scope.myOtherAside.$scope.$isShown && isFitToPage) {
                        $scope.viewerconfig.controls.imageReload(true, true);
                    }
                    $scope.isLastUpdateFinished = true;
                });


        };

【讨论】:

    猜你喜欢
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 2010-11-30
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多