ube*_*kel 4 javascript asynchronous node.js typescript
我希望我可以在 TypeScript 中获得堆栈跟踪。我似乎只看到最底层的函数名称。我在 Windows 10 (1803) 上使用 Node.js v12.4.0。
这是代码:
async function thrower() {
  throw new Error("test");
}
async function level1() {
  return await thrower();
}
async function level2() {
  return await level1();
}
async function level3() {
  return await level2();
}
async function main() {
  try {
    await level3();
  } catch(err) {
    console.warn("main error", err);
  }
}
console.log("node version", process.version);
main().then(() => {
  console.log("all done " + __filename);
}).catch((err) => {
  console.error("Something went wrong in here :(", __filename, err);
})
得到的堆栈跟踪没有提及level1或level2或level3:
async function thrower() {
  throw new Error("test");
}
async function level1() {
  return await thrower();
}
async function level2() {
  return await level1();
}
async function level3() {
  return await level2();
}
async function main() {
  try {
    await level3();
  } catch(err) {
    console.warn("main error", err);
  }
}
console.log("node version", process.version);
main().then(() => {
  console.log("all done " + __filename);
}).catch((err) => {
  console.error("Something went wrong in here :(", __filename, err);
})
经过一些研究并注意到__awaiter,我决定检查什么是 TypeScript 目标。那是我的问题。
这是我的坏处tsconfig.json:
{
    "compilerOptions": {
      "experimentalDecorators": true,
      "emitDecoratorMetadata": true,
      "downlevelIteration": true,
    },
    "include": [
        "server/**/*", "tests"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ]
}
这"target": "es2018"修复了它:
{
    "compilerOptions": {
      "experimentalDecorators": true,
      "emitDecoratorMetadata": true,
      "downlevelIteration": true,
      "target": "es2018"
    },
    "include": [
        "server/**/*", "tests"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ]
}
导致此堆栈跟踪:
{
    "compilerOptions": {
      "experimentalDecorators": true,
      "emitDecoratorMetadata": true,
      "downlevelIteration": true,
    },
    "include": [
        "server/**/*", "tests"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ]
}
| 归档时间: | 
 | 
| 查看次数: | 1303 次 | 
| 最近记录: |