Node.js 如何在nodejs中编写同步代码?
我知道这是一种不好的做法,但知道如何处理某些案件会有所帮助Node.js 如何在nodejs中编写同步代码?,node.js,Node.js,我知道这是一种不好的做法,但知道如何处理某些案件会有所帮助 在我的例子中,我试图创建一些文件,然后读取它们。我想知道在我尝试读取它们的包含目录之前,如何等待创建完成,而不使用setTimeout和条件?您可以使用async wait或promise来完成它 例如:- async function f() { return 1; } 您可以在其中传递您的方法。它将等待您的响应很多NodeJS函数都有同步对应项,您应该寻找它们 请参阅上的文件系统文档。 对“sync”进行页面搜索,您可以看到它
在我的例子中,我试图创建一些文件,然后读取它们。我想知道在我尝试读取它们的包含目录之前,如何等待创建完成,而不使用
setTimeout
和条件?您可以使用async wait或promise来完成它
例如:-
async function f() {
return 1;
}
您可以在其中传递您的方法。它将等待您的响应很多NodeJS函数都有同步对应项,您应该寻找它们 请参阅上的文件系统文档。 对“sync”进行页面搜索,您可以看到它提供了许多同步功能 不仅仅是
文件系统
提供了这一点。Child\u进程
也执行相同的操作,请参见示例
如果您找不到所需函数的本机同步版本,npm注册表是一个很好的地方,很多时候您可以在那里找到同步包
祝你好运
p、 在NodeJS中编写同步代码并不总是不好的做法,例如,许多CLI工具都是同步的。您使用的是什么操作系统?是Microsoft的Windows吗?是的,相关吗?您是说您正在创建文件,然后查看它们是否存在,并且存在竞争条件,因此它们可能还不存在?这是不是因为您在两个同步线程/co例程中执行此操作?请为问题添加详细信息。在我的例子中,我正在读取base64数据,对其进行解码,使用这些数据创建文件,并尝试在创建后读取这些文件,因为创建需要一些时间fs.readdirsync正在读取一个空文件夹,任何技巧都会非常有用我已经尝试过承诺,co,async和更多在Promiss中使用
fs.writeFileSync()
和fs.readFileSync()
通常,如果我的条件类似于if(fs.readdirsync(directory)==DataFiles.length){resolve},则必须指定何时解析,何时拒绝它永远不会进入它,因为目录仍然是空的。我认为OP需要一个更好的例子。他们尝试过承诺。你能告诉他们怎么做吗。(我不使用node.js,因此无法正确使用它。)