I have the following code, to scan for a Bluetooth device, which for every device found, I want to add the device to an array.
devices: Observable<Array<string>>;
bluetoothAdd() {
this.isScanning = true;
var plusIcon = this.page.getViewById(add);
plusIcon.style.opacity = 0;
var self = this;
bluetooth.hasCoarseLocationPermission().then(
function (granted) {
if (!granted) {
bluetooth.requestCoarseLocationPermission();
} else {
bluetooth.startScanning({
serviceUUIDs: [133d],
seconds: 4,
onDiscovered: function (peripheral) {
console.log(Periperhal found with UUID: + peripheral.UUID);
this.devices.push(peripheral); // <- Problem Line
}
}).then(function () {
console.log(scanning complete);
self.isScanning = false;
plusIcon.style.opacity = 1;
}, function (err) {
console.log(error while scanning: + err);
});
this.isScanning = false;
}
});
}
However, this code throws the following error:
JavaScript error:
file:///app/Pages/Home/home.component.js:99:37: JS ERROR TypeError: undefined is not an object (evaluating 'this.devices.push')
I am working in Typescript, but I know the push function is a JS thing. Not sure how I would do this in Typescript - what have I done wrong?