背景:我正在尝试为完全异步节点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个赞
这是什么意思?检测到使用同步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
我的演示不是完全异步的吗?
您的演示程序完全不同步,因为它没有调用任何同步API
添加回答
举报
0/150
提交
取消