如何调试$ http异步调用?

如何调试$ http异步调用?

问题描述:

我想看看我的回复在angularJS $http调用中看起来像。但我不知道如何在那里停止执行? (在成功响应后)

我试图在那个地方放置断点并且执行不停止。 我甚至试图把debugger指令放在那里,但它并没有停止。 这只发生在$ http调用(异步调用)时,否则中断点会停止执行。

我在代码中标记了注释,我想停止执行程序。

代码:

$scope.OpenModal = function (event) { 
    $("#myModal").css("display", "block"); 
    var parent_TD = $(event.currentTarget).parent(); 
    var cMEST_CDO2 = parent_TD.find("#inputDeliveryID").val(); 
    var res = null; 
    $http({ 
     method: "POST", 
     url: $scope.UrlGetDataFromCAORAM, 
     data: { cMEST_CDO2: cMEST_CDO2 } 
    }).then(function success(response) { 

     /* I would like to stop the program in this point */ 

     res = response.data; 
     $scope.inputCustomerData = res.ACCO_NME + " " + res.ACCO_ADD + " " + res.ACCO_ZIP + " " + res.ACCO_CIT + " " + res.ACCO_VAT; 
     $scope.ORAC_DDE = res.ORAC_DDE; 
     $scope.ORAC_NUM = res.ORAC_NUM; 
     $scope.ArticleName = res.MERC_NME + " (" + MERC_CDO1 + ")"; 

    }, function failure() { 
     alert("Error!"); 
    }) 

    } 

这可能吗?

+1

你知道什么是xhr要求吗? – madalinivascu

+1

你知道console.log(response)是什么吗? – madalinivascu

+1

使用chrome dev工具并在那里添加中断点以查看值。此外,您可以在网络选项卡中看到响应。 https://developer.chrome.com/devtools – Badr

如果您想在该点停止执行,请在浏览器的“开发人员工具”中使用断点。然而,如果你只是想看看HTTP调用的响应,那么你可以在浏览器的开发工具的网络选项卡中查看(假设你的浏览器具有这种功能 - 所有流行的浏览器都可以)和观察对您的呼叫的回应。

最后,您可以将响应(即与console.log(response))一起记录到响应回调中的控制台。

希望有帮助!

+0

你知道为什么执行不停止,如果我用$ http调用设置断点?带有$ http响应的Onyl,断点不会停止执行。 – FrenkyB

+0

您是否尝试过在浏览器的开发工具中设置断点?如果是这样,你可以通过截图了解你做过的事情吗? –

假设你success function不会被击中,另一种方法可以尝试,除了放置一个断点是将debugger;关键字的代码中,在您要开始调试这样的地步:

}).then(function success(response) { 

    /* I would like to stop the program in this point */ 
    debugger; 
    ... 

然后确保开发人员工具已打开(浏览器中的F12)并运行该功能。