为了账号安全,请及时绑定邮箱和手机立即绑定

NodeJS-使用“ --trace-sync-io”获取“警告:检测到使用同步API”

NodeJS-使用“ --trace-sync-io”获取“警告:检测到使用同步API”

30秒到达战场 2021-05-03 17:18:27
背景:我正在尝试为完全异步节点js演示创建一个小型测试。然后,我可以看到一个好的样本是什么样的,以便清理我已经完成的其他项目。这是我的代码//https://medium.com/@tkssharma/writing-neat-asynchronous-node-js-code-with-promises-async-await-fa8d8b0bcd7cfunction doubleAfter2Seconds(x) {  return new Promise(resolve => {    setTimeout(() => {      resolve(x * 2);    }, 500);  });}function addPromise(x){  return new Promise(resolve => {    doubleAfter2Seconds(10).then((a) => {      doubleAfter2Seconds(20).then((b) => {        doubleAfter2Seconds(30).then((c) => {          resolve(x + a + b + c);        })      })    })  });}addPromise(10).then((sum) => {  console.log(sum);});我收到的第一个(很多!)警告是在Node Debug Console中的此警告。Debugger attached.(node:29884) WARNING: Detected use of sync APIat realpathSync (fs.js:1437:13)at toRealPath (internal/modules/cjs/loader.js:205:13)at Module._findPath (internal/modules/cjs/loader.js:287:22)at Module._resolveFilename (internal/modules/cjs/loader.js:600:25)at Module._load (internal/modules/cjs/loader.js:529:25)at Module.runMain (internal/modules/cjs/loader.js:775:12)at startup (internal/bootstrap/node.js:300:19)我的问题是: -这是什么意思?检测到使用同步API我的演示不是完全异步的吗?
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

  1. 这是什么意思?检测到使用同步API

trace-sync-io检测对Node同步API的调用,例如fs.readFileSync。这些警告就是您要抓住的

为了执行您的代码,Node必须同步加载文件。当您require归档文件时,也会发生同样的事情。因此,预计您会有很多这样的警告:

(node:29884) WARNING: Detected use of sync API at realpathSync (fs.js:1437:13)

您可以尝试使用一个空文件,然后看到相同的警告: node --trace-sync-io empty-file.js

  1. 我的演示不是完全异步的吗?

您的演示程序完全不同步,因为它没有调用任何同步API


查看完整回答
反对 回复 2021-05-13
  • 1 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信