How to use BLE’s API scan( ) from ionic1 to ionic3

I want to migrate a project from ionic1 to ionic3, but cordova-plugin-ble-central has some problems

ionic1

   function quickScan( ) {
			var q = $ble.scan([], 3);
			q.then(function() {
				/* Done scanning */
				console.log("quickScan, numScans=" +sys.numScans);
				if (!sys.fsm.is("LISTING")) {
					setNumScans(0);
					return;
				}

				if (sys.numScans > 0)
					setNumScans(sys.numScans - 1);

				if (sys.numScans > 0) {
					quickScan();
				} else {
					console.log("BLE done scanning");
					if (sys.fsm.is("LISTING")) {
						sys.fsm.abort();
						sys.listOkCb(null);
					}
				}
			}, function(err) {
				/* Scanning Error */
				console.log("BLE ERR scanning");
				sys.fsm.abort();
				sys.listErrCb(err);
			}, function(dev) {
				/* New device found */
				addAndReportDevice(dev);
			});
		}

ionic3

  quickScan( ) {
			let q = this.Ble.scan([], 3)
			q.toPromise().then(function() {
				/* Done scanning */
				console.log("quickScan, numScans=" +this.numScans);
				if (!this.fsm.is("LISTING")) {
					this.setNumScans(0);
					return;
				}

				if (this.numScans > 0)
					this.setNumScans(this.numScans - 1);

				if (this.numScans > 0) {
					this.quickScan();
				} else {
					console.log("BLE done scanning");
					if (this.fsm.is("LISTING")) {
						this.fsm.abort();
						this.listOkCb(null);
					}
				}
			}, function(err) {
				/* Scanning Error */
				console.log("BLE ERR scanning");
				this.fsm.abort();
				this.listErrCb(err);
					/* New device found */
				this.addAndReportDevice(this.dev);
			});
		}

error message:TypeError: Cannot read property ‘scan’ of undefined

Please tell me how to solve it