Вы можете использовать эту пользовательскую библиотеку (написанную с помощью Promise) для выполнения удаленного вызова.
function $http(apiConfig) {
return new Promise(function (resolve, reject) {
var client = new XMLHttpRequest();
client.open(apiConfig.method, apiConfig.url);
client.send();
client.onload = function () {
if (this.status >= 200 && this.status < 300) {
// Performs the function "resolve" when this.status is equal to 2xx.
// Your logic here.
resolve(this.response);
}
else {
// Performs the function "reject" when this.status is different than 2xx.
reject(this.statusText);
}
};
client.onerror = function () {
reject(this.statusText);
};
});
}
Пример простого использования:
$http({
method: 'get',
url: 'google.com'
}).then(function(response) {
console.log(response);
}, function(error) {
console.log(error)
});
Используйте Point(*t)
, чтобы развернуть содержимое t
в качестве аргументов конструктора Point
.
Более эффективное решение: используйте специальный _make
альтернативный конструктор , чтобы непосредственно построить namedtuple
из произвольного итеративного без создания дополнительного промежуточного tuple
s (как распаковка звезды к основному конструктору требуется). Выполняется быстрее, меньше отбросов памяти:
Point._make(t)
Несмотря на имя, _make
является частью общедоступного API; он назван с лидирующим подчеркиванием, чтобы избежать конфликтов с именами полей (которые не могут начинаться с подчеркивания).