无法对JavaScript中的对象执行任何操作

时间:2019-03-22 03:39:10

标签: javascript angular typescript bluetooth rxjs

我有以下两个功能。 getRawData()和getBTRawData()

  1. getBTRawData()仅从手机的蓝牙获取数据
  2. getRawData()从getBTRawData()获取返回值,并尝试进行迭代,但这似乎不起作用。我可以在promise中打印值,但是不能执行任何功能。

getRawData() {

        const result = this.getBTRawData().then((item) => {
            console.log("Item in this one: ", item);
            let flatten = [];
            for(let i in item) {
                console.log("something here");
                flatten.push(...item[i]);
            }

            console.log(flatten);

        }).catch(err => {
            console.log(err);
        });

    }

    async getBTRawData() {
        let result = [];
        const res = await this.bluetoothSerial.subscribeRawData().subscribe((data) => {
            //console.log("raw data");
            // console.log(data);
            var buffer = new Uint8Array(data);
            //this.raw_data_c.push(buffer);
            result.push(buffer);
            //console.log(this.raw_data_c);).map(
            // console.log(result);
        });

        return result;
    }

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

getBTRawData似乎正在返回数组,而不是Promise。您应该能够直接处理getBTRawData内部getRawData中的数据(假设其他所有方法都可以工作)。