【问题标题】:Promise reject paused with an exception yet no error is log承诺拒绝因异常而暂停,但没有错误记录
【发布时间】:2016-06-12 16:18:38
【问题描述】:

下面是一段 Nodejs 代码。我正在使用 mongoose 查询 Mongodb。这段代码在“Line A”处暂停,并显示“Paused on Exception”消息。控制台显示没有错误。同时,这似乎仅在我在 VS Code 中运行时才会发生。从控制台运行应用程序不会引发异常。

我倾向于说这是一个 VS Code 问题。有没有人看到/面对相同或类似的东西?

Board.findOne({ boardId: id }, function (err, data) {
	if (!err) {
		data ? resolve(data.children) : reject(data);  //Line A
		// line above pauses execution with this message: "Paused on Exception"
		// No error logged in console. And this seem to happen only in VS code.
	}else{
		reject(err);
	}
 }

【问题讨论】:

  • 捕获承诺异常也无济于事,因为捕获的错误为空。注意:整段代码都在一个承诺内:var newPromise = new Promise (function(resolve, reject){ //db query code in question }).catch(function (err) { console.log(err); });

标签: javascript node.js mongodb promise


【解决方案1】:

Mongoose 已经支持 Promise,因此您可以将代码重写为:

return Board.findOne({ boardId: id }).then(function(data) {
  if (! data) throw new Error('data empty');
  return data.children;
}).catch(function(err) {
  console.log(err);
});

也许这也解决了您的 VS Code 问题。

【讨论】:

    猜你喜欢
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多