所以,我一直试图通过生成器函数以同步方式运行一个承诺。我需要这样,因为我必须在其余的依赖项之前初始化一个特定的对象,并且初始化所有这些依赖项的函数必须返回一个特定的app对象,但不是一个promise(因为该死的框架在这个对象中使用了这个对象)之后的同步方式。)
因此,我必须进行同步的唯一小异步部分是ping调用。以下是我如何使用发电机的方法:
function initLogger() {
const pingLogServer = function* (logServerHost) {
return ping.promise.probe(logServerHost)
.then((res) => {
return res;
});
};
const res = yield pingLogServer(logServerHost);
if (res.alive === true) {
... blah blah, do stuff to logger object
return logger;
}
然而,我收到语法错误:
const res = yield pingLogServer(logServerHost);
^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
这是我第一次实施生成器,并且我使用了一些教程(this和this),所以我可能做错了。
我在节点v6.11.1
上,所以我不能使用async/await
(不幸的是)。如果有任何其他建议来实现这一点 - 他们非常欢迎!
P.S。不是重复,因为它是一个非常狭窄的问题/解决方案案例,我提供了解决方案的很大一部分,只是寻找最终帮助,我已经解释了为什么我可以&# 39;使用其他解决方案,fe async/await
。