npm 包 buffer-async 使用教程

阅读时长 4 分钟读完

前言

在前端开发的过程中,我们经常需要处理二进制数据,比如对文件的读取、hash 计算等。Node.js 原生提供了 Buffer 对象来处理二进制数据,而在浏览器环境下则需要使用 TypedArray 来处理。但是,TypedArray 相对于 Buffer 对象来说,较为灵活但操作复杂。而 buffer-async 这个 npm 包则是可以在浏览器环境下使用,且操作上比 TypedArray 更方便的一种处理二进制数据的方式。

安装

在终端中执行以下命令即可:

使用

安装成功后,我们可以通过 import 或 require 的方式引入该库:

创建 BufferAsync 实例

调用 BA 构造函数可以创建一个 BufferAsync 类的实例:

参数说明:

  • bufferSize:缓存区大小,默认值为 1MB
  • maxQueueSize:最大队列大小,默认值为 1GB

写入数据

要写入数据到 BufferAsync 实例,我们通过 ba.write(data) 实现。该方法返回一个 Promise 对象,可以使用 await 获取结果:

读取数据

读取数据同样要使用 Promise 来完成:

获取 buffer 对象

需要读取 BufferAsync 实例中所有数据时,可使用 ba.toBuffer() 方法获取 buffer 对象:

实例方法

BufferAsync 实例提供了一些其他的非常方便的方法,在这里简单介绍一下:

  • ba.getBufferLength(): 获取当前实例中的 buffer 实际长度。
  • ba.resize(): 改变当前实例缓存区的大小。该方法并不会清空缓存区中的数据,因此需要先使用 toBuffer() 方法获取数据后再进行调用。回调接受参数 newBufSize,表示修改后新的缓存区大小。
  • ba.drop(readLength): 顾名思义,该方法可以从缓存队列中剔除指定长度的数据。

示例

下面给出一个使用示例,演示如何计算一个文件的 sha256 哈希值。

-- -------------------- ---- -------
-- ------------- ------- --
-------- ---------------- -
  ------ --- --------------- -- -
    ----- --- - --- ----------------
    --------------- ------------- -----
    ---------- - -- -- -------------------------
    ----------
  --
-

----- -------- -------- -
  ----- -- - --- ----
  ----- ---- - ----- ------------------------------- --------------
  --------------- ----------------------------- ---- -- --- - ---------------------------- ----- ----
-

----- -------- ------ -
  ----- ---- - ----- ----------------
  ------- - - -- - - ------------ - -- ----- -
    ----- ----- - ------------- - - -----
    ----- ---------------
  -
  ----- --------
-

------

结论

buffer-async 的使用是非常简单和方便的,它能够优雅的处理二进制数据,加速了我们的前端开发。同时,它也有很好的兼容性,在不同的环境中都能够使用。因此,在前端开发中,有必要了解并试用这个 npm 包。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066c8eccdc64669dde55cd

纠错
反馈