Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
利用本地javascript承诺链中的控制台日志记录_Javascript_Node.js_Debugging_Es6 Promise - Fatal编程技术网

利用本地javascript承诺链中的控制台日志记录

利用本地javascript承诺链中的控制台日志记录,javascript,node.js,debugging,es6-promise,Javascript,Node.js,Debugging,Es6 Promise,我有一个本地javascript承诺链,看起来有点像这样: function chain() { promiseFunction1().then(function(data) { console.log("some message"); return promiseFunction2(); }).then(function(data) { console.log("some message"); return promiseFunction3();

我有一个本地javascript承诺链,看起来有点像这样:

function chain() {
  promiseFunction1().then(function(data) {

    console.log("some message");
    return promiseFunction2();

  }).then(function(data) {

    console.log("some message");
    return promiseFunction3();

  }).then(function(data) {

    console.log("some message");
    return promiseFunction4();

  }).catch(function(error) {
    console.error(error.stack);
  });

}
function promiseFunction() {
  return new Promise(function(resolve,reject) {
     someCallbackfunction(arg, function(err, data){
        if (err) {
          return reject(err);
        }
        console.log("some message");
        return resolve(data);
     });
  });
}
promise函数看起来有点像这样:

function chain() {
  promiseFunction1().then(function(data) {

    console.log("some message");
    return promiseFunction2();

  }).then(function(data) {

    console.log("some message");
    return promiseFunction3();

  }).then(function(data) {

    console.log("some message");
    return promiseFunction4();

  }).catch(function(error) {
    console.error(error.stack);
  });

}
function promiseFunction() {
  return new Promise(function(resolve,reject) {
     someCallbackfunction(arg, function(err, data){
        if (err) {
          return reject(err);
        }
        console.log("some message");
        return resolve(data);
     });
  });
}
我的代码似乎很好地解决了问题,从终端反馈可以看出,我需要的操作已经开始运行,但无论我尝试了什么,我都无法获得任何形式的控制台日志记录

1为什么这些声明没有像我期望的那样打印出来


2我如何才能取回我的详细输出?

结果证明问题最终是外部的。 在我的承诺链的某个地方,我使用回调函数调用了一个外部库,但该库从未响应,导致我的链永远等待

如果您遇到类似的情况,我建议您仔细检查链中的所有函数是否出现类似情况


一种快速的调试方法是,在x时间段后,在链中解析它的每个承诺函数中放置一个超时,这样,您至少可以获得日志结果,而不必永远在黑暗中绊倒。

您是否从回调函数中得到了一些消息?如果不是,则应归咎于某些调用函数。请尝试console.errorError,error。可能是error.stack未定义在基于回调的函数拒绝的任何内容上,因此您无法获得任何日志。@Bergi我尝试使用console.errorError,error未成功。此外,在promise函数或someCallback中,some消息也不会被调用。我确实知道前两个函数的解析是正确的,因为我可以在Journal中看到它们的操作消息。我发现第三个函数似乎确实有问题,不确定这是一个错误还是承诺永远无法解决,因为没有输出很难判断。您是如何解决的?