javascript-不能在Typescript中编译的承诺
作者:互联网
我正在使用Typescript和Nativescript运行时编写基于Angular2的移动应用程序,但是面临Promises的一些问题.我有一个HomeComponent,我希望能够从中调用各种函数(包装在Promise中),其中之一是扫描承诺方法.见下文:
BLE实用程序类:
export class ble {
scan() {
return new Promise((resolve, reject) => {
try {
// my code emitted
}
catch (e) {
reject(e);
}
});
}
}
Angular2 Home组件:
import {ble} from "../../Utilities/newBLEDevice";
export class HomePage {
_ble: ble = new ble;
bluetoothAdd() {
this._ble.scan.then( // <- ERROR LINE
}
}
但是,当我这样做时,在this._ble.scan.then行上出现错误:
[ts] Property ‘then’ does not exist on type ‘() => Promise<{}>’
我究竟做错了什么?
解决方法:
该错误消息告诉您您正在尝试访问函数上的属性.然后,您不应该尝试在函数本身上运行.您需要调用该函数,然后在结果Promise上使用.更改此:
this._ble.scan.then(...
对此:
this._ble.scan().then(
标签:nativescript,typescript,promise,javascript 来源: https://codeday.me/bug/20191027/1940998.html