- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我对这个很困惑,我在 document 上找到的在 nodejs.org 中。
它表示 fs.open()
中的 rs
标志用于以同步模式打开文件以进行读取。
这让我觉得这是一个异步文件打开,但它正在执行一个同步读取?我真的很困惑这一点。
之后它注意到这不会将fs.open()
变成同步阻塞调用。如果那是您想要的,那么您应该使用 fs.openSync()
。
fs.open
的rs
和fs.openSync
的r
有什么区别?
最佳答案
不同之处在于一个函数需要一个回调。回调被传递给低级绑定(bind),因此无论您传递给它的标志如何,该函数都是异步的,因此文档说明标志“不会打开 fs.open( )
进入同步阻塞调用”。举个例子:
var fs = require('fs');
var file = './file';
// fd will always be defined
var fd = fs.openSync(file, 'r');
// fd is undefined because the function returns a
// binding, and the actually fs is passed in a callback
var fd = fs.open(file, 'rs');
事件如果我们不将回调传递给异步函数,则该方法的结构不会返回结果文件描述符。这就是这两个函数的源代码:
fs.open = function(path, flags, mode, callback) {
callback = makeCallback(arguments[arguments.length - 1]);
mode = modeNum(mode, 438 /*=0666*/);
if (!nullCheck(path, callback)) return;
binding.open(pathModule._makeLong(path), stringToFlags(flags), mode, callback);
};
fs.openSync = function(path, flags, mode) {
mode = modeNum(mode, 438 /*=0666*/);
nullCheck(path);
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
};
关于javascript - fs.open 'rs' 标志和 fs.openSync 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18995980/
我正在尝试使用 image-size在我本地计算机上的 React 应用程序中,当我尝试获取 .jpg 图像的尺寸时,应用程序因错误而崩溃: TypeError: fs.openSync is not
我有一个进程启动另一个进程并将其输出写入文件 out.log let out = fs.openSync(path.join(process.cwd(), './out.log'), 'a') let
我对这个很困惑,我在 document 上找到的在 nodejs.org 中。 它表示 fs.open() 中的 rs 标志用于以同步模式打开文件以进行读取。 这让我觉得这是一个异步文件打开,但它正在
我想为我的应用程序编写一个日志模块,它将根据模块初始化的时间(调用模块中的 init 函数)创建一个不存在的文件。 但是,当我尝试使用 fs.openSync(log_file_name,'a') 创
我注意到对于 openSync 来说可能是个大问题,当您使用 openSync 打开文件时,您不会获得文件描述符。如果您使用异步调用打开,您只能将其作为回调的参数获取。问题是你必须有文件描述符来关闭文
所以直到几天前,我还通过一个简短的 shell 脚本部署我的 Node.JS AWS Lambda 函数,它运行得非常好。 现在我不知道为什么或我做了什么不同,但出于某种原因,在每次部署我的 lamb
我有一个由 DynamoDB 流触发的 AWS DynammoDB lambda。所有的实现都是用 ClaudiJS 在 JS 中完成的。当使用 claudia create 命令部署 lambda
我正在使用 aws lambda。 我有一个 .p8 文件,用于发送 apns 通知。因为我不能使用相对或绝对路径,因为它没有服务器。我必须从 s3 url 读取它。为此我做了这个 let file
我是一名优秀的程序员,十分优秀!