3

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

我的问题是,如果我返回相同的 WinJS.xhr 对象,但在它的末尾加上一个“then”,它将输出并按摩它,那么调用者没有得到预期的输出(事情在肠子里爆炸了WinJS 库)。

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

4

1 回答 1

4

一旦你弄清楚了,这很简单。

你需要知道两件事:

  1. 在 promise 上调用 .then() 会返回一个新的 promise,
  2. 您传递给的函数的返回值将成为该新承诺的值。

所以,要做你想做的事情,它是这样的:

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