3

WinJSListViewコントロールにバインドするためにDataAdapterを実装しています。そのインターフェースには、Promiseを返すgetCountメソッドが必要です。WinJS.xhrオブジェクトを直接返す場合、それは正常に機能します。ただし、発信者に返す前に、その応答をマッサージしたいと思います。

私の問題は、同じWinJS.xhrオブジェクトを返しても、その最後に「then」を付けて出力を取得し、それをマッサージすると、呼び出し元が期待される出力を取得できないことです(腸内で物事が爆発します) WinJSライブラリの)。

そのため、PromiseにネストされているPromiseを返す方法がわかりません。誰もがこれを行う方法を知っていますか?

4

1 に答える 1

4

あなたがそれを理解すれば、これはかなり簡単です。

知っておくべき2つのこと:

  1. 約束で.then()を呼び出すと、新しい約束が返されます。
  2. 渡した関数の戻り値は、その新しいpromiseの値になります。

だから、あなたが達成したいことをするために、それはこのようなものになります:

return WinJS.xhr({url: whateverYourURlIs })
    .then(function (response) {
        var tweakedResponse = processResponse(response);
        return tweakedResponse;
    });
于 2012-05-14T05:47:16.670 に答える