Возможно ли установить/изменить обратные вызовы на iron-ajax? У меня есть переменное количество запросов для разных обратных вызовов для каждого.Настройка обратного вызова на Polymer iron-ajax
ответ
Как сказал Скотт в комментарии, вы должны использовать отдельный iron-ajax для каждого запроса. ОДНАКО, если вы хотите динамически запрашивать запросы, я склонен использовать динамически созданный запрос железа - хотя бы потому, что он возвращает обещание, и я могу нести это. Вот маленький пример
var dataPromise = new Promise(function(accept, reject) {
var sendOptions = {
url: '/api/queries',
method: 'POST',
handleAs: 'json',
headers: {'content-type': 'application/json'}
};
body = {};
body.name = name;
if (useId) {
body.id = parent.id;
}
if (useDates) {
body.startdate = parent.startdate;
body.enddate = parent.enddate;
}
sendOptions.body = body;
var request = document.createElement('iron-request');
request.send(sendOptions).then(function() {
accept(request.response);
});
});
, а затем я могу передать dataPromise
вокруг, и когда я хочу, нужны результаты запроса я делаю (в моем случае в совершенно отдельный элемент) ...
open: function(dataPromise, params, x, y) {
var self = this;
this.x = x;
this.y = y;
dataPromise.then(function(data) {
self.title = data.name;
self.heading = data.heading;
self.data = data.data;
self.$.griddialog.open();
});
this.params = params;
},
ничего себе, что выглядит ужасно для меня. означают весь подход к сквозному запросу. это можно легко сделать с помощью fetch() справа или просто обычного XHR? теперь вам нужно создать обертку над элементом DOM, чтобы сделать запрос ajax. .. смешно – Artin
ИМО, вы должны сделать один «iron-ajax» для каждого _response_, который вас интересует, вместо того, чтобы пытаться заставить один «iron-ajax» управлять несколькими ответами. –
ребята, зачем нам вообще нужен элемент DOM «iron-ajax'? почему бы не вызвать api напрямую через обычные 'fetch' или' xhr'? – Artin