Ich habe den folgenden Code, um für ein Bluetooth-Gerät zu suchen, die für jedes Gerät gefunden, möchte ich das Gerät zu einem Array hinzufügen."push()" zu einem Array in Typescript
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;
}
});
}
jedoch dieser Code führt den folgenden Fehler:
JavaScript error: file:///app/Pages/Home/home.component.js:99:37: JS ERROR TypeError: undefined is not an object (evaluating 'this.devices.push')
ich in Typoskript arbeite, aber ich weiß, dass die Push-Funktion eine JS Sache. Nicht sicher, wie ich das in Typoskript machen würde - was habe ich falsch gemacht?
Dies hat nichts mit TypeScript zu tun. 'Das' ist nicht das, was Sie erwarten. Siehe http://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work. Sie können 'self' verwenden, obwohl – elclanrs