【发布时间】:2016-12-28 18:34:18
【问题描述】:
我正在尝试使用 iron-ajax 发出请求。
我的代码如下所示:
<link rel="import" href="../bower_components/iron-ajax/iron-ajax.html">
<iron-ajax
id="fetch"
url="myapi.com/resource"
method="GET"
content-type="application/json"
handle-as="json"
on-response="storeData"
debounce-duration="300" auto>
</iron-ajax>
我一直收到此错误,并已链接到以下来源。
未捕获的类型错误:request.completes.then 不是函数
https://github.com/PolymerElements/iron-ajax/blob/master/iron-ajax.html#L447
当我将生成的 iron-request 对象 request.completes 记录到控制台时,我看到了以下对象。
g
_callbacks: Object
_pendingCallbacks: Object
ctx: null
promiser: ()
__proto__ : Object
我正在使用以下版本,polymer serve 在本地运行应用程序。
铁阿贾克斯:1.4.3 聚合物:1.7
【问题讨论】:
-
你的事件处理程序的内容是什么,即
storeData?另外,尝试提供一个最小(非)工作示例。 -
谢谢,@alesc。即使 storeData 只是
storeData: function(response) { console.log(response) },错误也是一样的 -
该错误似乎表明
iron-request未解决(例如,未定义)。你有重现问题的 GitHub 链接或小提琴吗? -
您是否尝试自动生成请求?根据我的经验,我在给定的 Iron-ajax id 上使用
generateRequest()方法,以便在触发事件处理程序时生成请求(例如选择的更改)。 -
@alesc @tony19 这个plnkr.co/edit/3GATdWBbiq9P0YlKHn84 显示了一个最小的,不幸的是工作示例。令人抓狂的是它基本上是样板代码,上面的
request.completes似乎是一个有效的承诺 AFAIK。 request.completes 的设置器在这里:github.com/PolymerElements/iron-ajax/blob/master/…
标签: ajax polymer polymer-1.0