微信小程序发送let myArray = [0x41,0x02,0x17,0x05,0x13,0x09,0x06,0x05,0x35,0x7E,0x00]; //str1=myArray; that.data.client.publish('Liang_tx', myArray); 报错The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type object
时间: 2023-08-02 09:12:10 浏览: 50
这个错误提示指出传递给 `publish` 方法的参数必须是字符串、Buffer 或 ArrayBuffer 类型之一,不能传递一个对象类型的数据。
根据你提供的代码,`myArray` 是一个数组类型的变量,而 `publish` 方法需要传递一个 Buffer 类型的数据。因此,你需要将 `myArray` 转换成一个 Buffer 对象,然后再传递给 `publish` 方法。
可以使用 `Buffer.from()` 方法将数组转换成 Buffer 对象,具体代码如下:
```
let myArray = [0x41, 0x02, 0x17, 0x05, 0x13, 0x09, 0x06, 0x05, 0x35, 0x7E, 0x00];
let buf = Buffer.from(myArray);
that.data.client.publish('Liang_tx', buf);
```
这样就可以将 `myArray` 数组转换成 Buffer 对象,然后传递给 `publish` 方法了。
相关问题
微信小程序中使用let myArray = [0x41, 0x02, 0x17, 0x05, 0x13, 0x09, 0x06, 0x05, 0x35, 0x7E, 0x00];let buf = Buffer.from(myArray);that.data.client.publish('Liang_tx', buf);,报错Buffer is not defined
在微信小程序中,Node.js的Buffer模块并不支持,需要使用小程序原生的API进行转换。可以通过以下代码实现:
```js
let myArray = [0x41, 0x02, 0x17, 0x05, 0x13, 0x09, 0x06, 0x05, 0x35, 0x7E, 0x00];
let typedArray = new Uint8Array(myArray);
let buf = typedArray.buffer;
let dataView = new DataView(buf);
let hexString = '';
for (let i = 0; i < typedArray.byteLength; i++) {
let str = dataView.getUint8(i).toString(16);
str = str.length === 2 ? str : '0' + str;
hexString += str;
}
that.data.client.publish('Liang_tx', hexString);
```
其中,`typedArray`是将数组转换成TypedArray类型,`buf`是将TypedArray类型转换成ArrayBuffer类型,`dataView`是通过ArrayBuffer类型创建DataView类型,`hexString`是将DataView中的数据转换成16进制字符串。最后将`hexString`作为参数传入`publish`方法即可。
微信小程序获取数组的值
如果你想在微信小程序中获取一个数组的值,可以使用数组的下标来访问数组元素。例如,假设你定义了一个名为`myArray`的数组,你可以使用以下方式获取第一个元素的值:
```
var firstElement = myArray[0];
```
同样,你也可以使用循环来遍历数组中的所有元素:
```
for (var i = 0; i < myArray.length; i++) {
var element = myArray[i];
// 在这里处理每个元素的值
}
```
注意,在微信小程序中,使用`var`关键字声明的变量作用域是函数级别的,而不是块级别的。因此,如果你在循环中使用`var`声明变量,它将在整个函数中可见。如果你想在块级别中声明变量,应该使用`let`或`const`关键字。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)