Вы можете использовать эту пользовательскую библиотеку (написанную с помощью 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)
});
Ниже следует объяснение проблемы. Возможно, вам захочется попробовать это?
class A(object):
def printme(self):
print "A"
a = A()
a.printme()
Имя self
определяется только внутри методов, которые явно объявляют параметр с именем self
. Он не определен в области класса.
Класс scope выполняется только один раз, во время определения класса. «Вызов» класса с A()
вызывает его конструктор __init__()
. Так что, возможно, вы действительно этого хотите:
class A(object):
def __init__(self):
self.printme()
def printme(self):
print "A"
a = A()
, если вы хотите что-то напечатать при создании экземпляра объекта:
class A(object):
def __init__(self):
self.printme()
def printme(self):
print "A"
a = A()
Это именно то, что он говорит: self
не определяется, когда вы вызываете self.printme()
. self
не магически определен для вас в Python; он работает только внутри метода, который имеет аргумент с именем self
. Если это поможет, попробуйте заменить слово self
на что-то еще, скажем foo
, во всей вашей программе (потому что в self
в качестве идентификатора нет ничего особенного).
Если вы хотите, чтобы функция запускалась каждый раз, когда экземпляр класса был создан, попробуйте следующее:
class A(object):
def __init__(self):
self.printme()
def printme(self):
print "A"
a = A()