同步运行一个承诺

时间:2017-10-05 09:30:44

标签: javascript node.js asynchronous promise

所以,我一直试图通过生成器函数以同步方式运行一个承诺。我需要这样,因为我必须在其余的依赖项之前初始化一个特定的对象,并且初始化所有这些依赖项的函数必须返回一个特定的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

这是我第一次实施生成器,并且我使用了一些教程(thisthis),所以我可能做错了。

我在节点v6.11.1上,所以我不能使用async/await(不幸的是)。如果有任何其他建议来实现这一点 - 他们非常欢迎!

P.S。不是重复,因为它是一个非常狭窄的问题/解决方案案例,我提供了解决方案的很大一部分,只是寻找最终帮助,我已经解释了为什么我可以&# 39;使用其他解决方案,fe async/await

0 个答案:

没有答案
相关问题