我有一个原生的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);
});
}
promise函数看起来像这样:
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数量的时间后解决该承诺的链中的每个promise函数中放置一个超时,这样,您至少可以获取日志记录结果,而不必永远陷入黑暗。
关于javascript - 利用 native javascript Promise链中的控制台日志记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37397094/