【问题标题】:A promise with iron-ajax response一个带有 Iron-ajax 响应的承诺
【发布时间】:2017-08-27 19:10:08
【问题描述】:

如何在响应来自 Iron-ajax 的情况下编写 Promise。

<iron-ajax id="listItems" method="GET" content-type="application/json" handle-as="json" last-response="{{items}}" on-error="handleErrorResponse"></iron-ajax>

this.data =  {
    get: function(sort, page, pageSize) {
            return new Promise(function(resolve, reject) {
                // Execute iron-ajax.
                //...
                // resolve(iron-ajax's response);
            });
        }
    }
};

【问题讨论】:

  • 你可能想return new Promise ... 开始,否则承诺的东西是没有意义的
  • @JaromandaX,是的,已经完成了。你能帮忙吗?
  • 不 - 因为我根本看不出你为什么需要 Promise - 鉴于 Iron-ajax 文档 - 为你的问题提供更多上下文(更多代码)可能会有所帮助
  • @JaromandaX,我正在与david-mulder.github.io/paper-datatable/components/…集成,我需要实现返回Promise的接口,并且要显示的项目是从ajax请求中获取的。

标签: javascript ajax promise polymer iron-ajax


【解决方案1】:

您正在寻找listItem.generateRequest(),因为它会返回 Iron-ajax 附带的 Iron-request 对象,该对象又提供了一个名为 request.completes 的承诺。

https://www.webcomponents.org/element/PolymerElements/iron-ajax/iron-ajax#method-generateRequest

https://www.webcomponents.org/element/PolymerElements/iron-ajax/iron-request#property-completes

我在下面修改了您的代码示例:

<iron-ajax id="listItems" method="GET" content-type="application/json" handle-as="json" last-response="{{items}}" on-error="handleErrorResponse"></iron-ajax>

this.data =  {
    get: function(sort, page, pageSize) {
            return this.$.listItems.generateRequest().completes;
        }
    }
};

https://stackoverflow.com/a/37995462/2795627 中更复杂的示例启发。感谢@akivajgordon。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2017-05-07
    • 1970-01-01
    相关资源
    最近更新 更多