$ timeout函数在if语句中不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了$ timeout函数在if语句中不起作用相关的知识,希望对你有一定的参考价值。

我正在使用angular设置一个Web表单,用户将完成表单,从服务器获得响应,然后重定向到另一个页面。

angular.module('discountController', ['discServices'])

.controller('discCtrl', function(Discount,  $timeout, $location){
    var app = this;

    app.reqDiscount = function(discountData) {
            Discount.reqDiscount(app.discountData).then(function(data) {
                if (data.data.success) {
                    app.successMsg = data.data.message ; // Create Success Message
                    $timeout(function(){
                        console.log('timeout fired');
                        $location.path('/discountoutcome');                        
                        } , 3000);
                } else {
                    app.errorMsg = data.data.message; // Create an error message
                }
            });
        }; 
    });    

在上面的代码中,我调用app.reqDiscount函数,并成功从服务器获取响应,该响应填充了app.successMsg变量。但$ timeout函数不起作用。但是,如果我将$ timeout函数放在if-else语句之外,它确实有效。这不是我想要的,因为如果有错误我想留在页面上。

在我的代码的其他方面,我已经在这样的嵌套位置放置了$ timeout函数,它可以工作,所以我不明白为什么它在这里不起作用。

你能给我的任何帮助都会很棒。即使你不能回答这个问题,如果你可以给我一些调试的提示,这将有所帮助,因为console.log()是我目前唯一的调试方法。我正在使用Visual Studio Code。

Chrome控制台:Chrome console screen shot

Visual Studio控制台:VSC console

答案

我知道了。我错误地编写了API。 data.data.success返回false而不是true。谢谢你的帮助。

以上是关于$ timeout函数在if语句中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 if 语句后跟调用似乎在批处理文件中不起作用

if 语句比较在目标 c 中不起作用的整数

remaining()在if语句C ++中不起作用

CURLOPT_TIMEOUT 在 php / windows 中不起作用?

java代码在片段活动中不起作用

else 在 if 语句中不起作用