我使用PyCharm/IntelliJ社区版本来编写和调试Python脚本,但现在我正在尝试调试Python模块,而PyCharm执行错误的命令行指令解析,导致执行错误,或者我正在制作配置错误.
这是我的运行/调试配置:
这是在我运行模块时执行的(这里没有问题):
/usr/bin/python3.4 -m histraw
Run Code Online (Sandbox Code Playgroud)
但是当我调试时,这是IntelliJ控制台中的输出:
/usr/bin/python3.4 -m /opt/apps/pycharm/helpers/pydev/pydevd.py --multiproc --client 127.0.0.1 --port 57851 --file histraw
/usr/bin/python3.4: Error while finding spec for '/opt/apps/pycharm/helpers/pydev/pydevd.py' (<class 'ImportError'>: No module named '/opt/apps/pycharm/helpers/pydev/pydevd')
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)
如您所见,参数分析错误,并且在-m
选项之后,在模块名称之前传递IntelliJ调试脚本.
我也试过只是把-m histraw
在脚本领域,但不工作,那场只是把Python脚本路径,而不是模块.
有任何想法吗?
我需要以同步方式获取 Javascript Promise对象的值。
我知道在 Javascript 中Promise对象是如何工作的,它的优点,以及如何then
使用方法处理值,但是有一些用例,特别是 Node.js(但这也可能适用于浏览器引擎),你需要仅返回值,但您正在调用返回 Promise 对象的 API,并且您无法更改该 API 或使用者 API 的签名。
例如,在 Java 语言中,您有一个get()
方法,允许您在必要时等待完成操作(阻止执行),然后返回其结果。即使您get(timeout,unit)
在启动前等待的时间最长,但TimeoutException
如果等待超时。
我遇到的问题是这样的:
api1.setCallBackThatHasToReturnANoPromiseValue(
function(p1, p2) {
return api2.getPromisedValue(p1,p2) // This returns a Promise
.get() // -> but something like this
// could get the value in a sync way
}
);
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我是否可以通过异步编程解决这个问题吗?
不管我的具体问题可以用异步代码解决,有一种方法可以以同步方式获取 Promise 的值(我知道它会阻止执行和所有性能问题,请避免“bla bla.txt”)。 ..”)。