Как насчет этой версии в обычном ES6 / ES2015?
function get(url) {
return new Promise((resolve, reject) => {
const req = new XMLHttpRequest();
req.open('GET', url);
req.onload = () => req.status === 200 ? resolve(req.response) : reject(Error(req.statusText));
req.onerror = (e) => reject(Error(`Network Error: ${e}`));
req.send();
});
}
Функция возвращает обещание . Вот пример того, как использовать функцию и обрабатывать обещание , которое он возвращает:
get('foo.txt')
.then((data) => {
// Do stuff with data, if foo.txt was successfully loaded.
})
.catch((err) => {
// Do stuff on error...
});
Если вам нужно загрузить json-файл, вы можете использовать JSON.parse()
для преобразования загруженных данных в объект JS.
Вы можете также интегрировать req.responseType='json'
в функцию, но, к сожалению, нет поддержки IE для это , поэтому я бы придерживался JSON.parse()
.
Поскольку Kafka предназначен только для добавления, то единственный способ удаления сообщений в этих темах Conncet - это опубликовать его с именем соединителя в качестве ключа сообщения и null
в качестве значения.
Вы можете просмотреть эти темы с помощью консоли потребителя, чтобы увидеть, какие данные в них содержатся, включая --property print.key=true
, и продолжать работу потребителя при удалении соединителя.
Вы можете PUT
новую конфигурацию в /connectors/{name}/config
, но любые конкретные смещения, которые используются, зависят от фактического типа разъема (приемник / источник); например, есть внутренняя тема Кафки __consumer_offsets
, а также offset.storage.topic
. Я не уверен, что изменение connector.class
было бы хорошей идеей с учетом этого