在Deno中,Buffer.fromof node的等价物如下所示:
import {Buffer} from "https://deno.land/std/io/buffer.ts";
const buf=new Buffer(new Uint8Array(10).fill(41));
在节点i中,可以使用**buf.address()**从“ffi-napi”插件中获取缓冲区的引用地址,如下所示:
var FFI = require('ffi-napi');
var buf= Buffer.from([0x41,0x41,0x41,0x41])
console.log(buf.address())
Deno已经内置了对ffi的支持,可以用Deno.dlopen加载外部库,但没有获取指向缓冲区指针的方法
有没有办法我可以在德诺这样做?
1条答案
按热度按时间wh6knrhe1#
在Deno 1.24中,您可以使用
Deno.UnsafePointer.of
:根据您的使用情况,您可能不需要实际地址。Deno 1.15增加了一些FFI改进,包括在
Deno.dlopen
中支持缓冲区参数:示例:
德诺的电话:
结果:
同一篇博客文章提到了更多即将到来的支持:
除了传递buffers-as-arg之外,我们认识到能够使用buffers-as-return-value的重要性,并计划在未来的版本中支持此特性。
如果您确实需要在JS/TS代码中使用该地址,那么您可以创建一个外部库API调用,以便从您正在使用的本机语言中公开该地址。如果您认为这是应该内置的内容,那么我建议使用submitting a new issue.