WinJS中的嵌套Promise

时间:2012-05-09 21:53:40

标签: winjs

我正在实现一个DataAdapter绑定到WinJS ListView控件。该接口需要一个返回Promise的getCount方法。如果我直接返回一个WinJS.xhr对象,那很好用。但是,我想在将它传回呼叫者之前按摩它的响应。

我的问题是,如果我返回相同的WinJS.xhr对象,但是在它的末尾添加“then”,它接受输出并按摩它,那么调用者没有得到预期的输出(事情爆炸了)在WinJS图书馆的内容中。)

所以,我想我不明白如何返回嵌套在Promise中的Promise。有谁知道怎么做?

1 个答案:

答案 0 :(得分:4)

一旦你搞清楚,这是非常简单的。

您需要了解的两件事情:

  1. 在承诺上调用.then()会返回一个新的承诺,
  2. 您传递给的函数的返回值将成为该新promise的值。
  3. 所以,要做你想做的事,就是这样:

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