2016-05-27 12 views
3

NativescriptランタイムでTypescriptを使用するAngular2ベースのモバイルアプリを作成していますが、Promises.Iにはいくつかの問題に直面しています。HomeComponentがあり、そこからさまざまな関数を呼び出すことができます約束に包まれている)、そのうちの1つはscan約束の方法です。以下を参照してください:PromiseがTypescriptでコンパイルされない

BLEユーティリティクラス:

export class ble { 
    scan() { 
     return new Promise((resolve, reject) => { 
      try { 
       // my code emitted 
      } 
      catch (e) { 
       reject(e); 
      } 
     }); 
    } 
} 

Angular2ホームコンポーネント:

import {ble} from "../../Utilities/newBLEDevice"; 
export class HomePage { 
    _ble: ble = new ble; 
    bluetoothAdd() { 
     this._ble.scan.then(// <- ERROR LINE 
    } 
} 

私はこれを行うときしかし、私はthis._ble.scan.thenライン上のエラーを取得:

[ts]プロパティ 'then'は型 '()=>に存在しません。< {}>'

私は間違っていますか?

+0

。いずれにしても、エグゼキュータのコールバック内のすべての例外は拒否になります。 – Bergi

答えて

4

このエラーメッセージは、関数のプロパティにアクセスしようとしていることを示しています。関数自体にthenを実行しようとしてはいけません。関数を呼び出して、結果のPromiseにthenを使用する必要があります。これを変更します。

this._ble.scan.then(... 

これに:あなたは `` Promise`コンストラクタ内部try` `catch`を必要としない

this._ble.scan().then(
関連する問題