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