我正在尝试调试适用于Android的Nativescript应用,并且我注意到它不再显示带有相应行和列的语法错误。数字,甚至没有console.log语句。如何再次启用此功能?我用来启动应用程序的命令是tns run android
。我正在使用Nativescript版本2.5.2。 VSCode插件无法工作,因为它会忽略我放置的任何断点,并且控制台也不会显示任何错误。我能做什么?
编辑:
看来只打印console.error()
语句。
最佳答案
在对不同类型的结构进行了大量修改之后,并且通过对Nativescript与常规浏览器JS的关系进行了更多研究,我发现问题出在Promises的使用上,如果出现错误,则将执行推迟到catch()方法,但与其他任何常规编程语言不同,Promise中“未处理”的拒绝结果不会引发任何异常;这意味着,基本上,对于您在代码中调用的任何promise,都应该有一个链接的catch()方法调用,以便有效地捕获promise可能产生的任何错误。这也适用于涉及导航的Promise,其中的内容变得更加棘手:您可能会认为下一个视图(例如view.js
)将自己拥有一个调用堆栈,并在甚至不在Promise之内的代码处产生未处理的异常在那里,但事实并非如此:在view.js
处产生的异常将由您在其中启动导航的promise的catch()
方法捕获,并且任何后续的promise必须具有自己的catch()方法调用,因为错误不会冒泡到上一个视图。我可以想到许多其他麻烦的构造,但我希望重要的一点仍然清楚:始终将承诺接chain而至。