2012-05-09 17 views
3

私は、WinJS ListViewコントロールにバインドするDataAdapterを実装しています。そのインタフェースにはPromiseを返すgetCountメソッドが必要です。 WinJS.xhrオブジェクトを直接返すと正常に動作します。しかし、私はそれを呼び出し元に返す前に、その応答をマッサージしたい。WinJS内のネストされた約束

私の問題は、同じWinJS.xhrオブジェクトを返しても、その最後に "then"を付けて出力してマッサージすると、呼び出し元が期待する出力を得られないということですWinJS図書館の内部にある)。

私はプロミスにネストされたプロミスを返す方法を理解していないと思います。誰でもこれを行う方法を知っていますか?

答えて

4

これは簡単に理解できます。

あなたが知る必要がある2つのこと:

  1. (.then呼び出し)の約束には、新しい約束を返し、あなたはその後に渡す機能の
  2. 戻り値は、その新たな約束のための値となり、 。

だから、あなたが達成したいものを行うために、それはこのようなものになるのです。

return WinJS.xhr({url: whateverYourURlIs }) 
    .then(function (response) { 
     var tweakedResponse = processResponse(response); 
     return tweakedResponse; 
    }); 
+0

これは、私はそれが働いたと思った正確にどのように実際にあるが、特定のバグは、私が使っていたビルドにありましたそれは私の機能が約束を消耗しないように呼びかけていた方法を引き起こしていました。しかし、はい、これはあなたが言うように簡単です。 –

関連する問題