Вы можете использовать эту пользовательскую библиотеку (написанную с помощью 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)
});
Группа, определенная (..)
, является группой 1. Конец квантора +
повторяет его. Каждый раз, когда движок может повторять группу (совпадающие с двумя символами), группа 1 перезаписывается.
aa
в группу 1 bb
до группы 1 cc
в группу 1. Когда вы проверяете группу 1, двигатель возвращает cc
. Все остальные записи потеряны.
(Исключением является механизм .NET, который также возвращает cc
, а также позволяет проверять промежуточные захваты благодаря объекту CaptureCollection. Он будет содержать aa
, bb
и cc
.)
С помощью (..)+(...)
, почему группа 1 содержит aa
? Откат!
Чтобы понять это, нам снова нужно следовать по пути движка регулярного выражения.
aa
в группу 1 (..)
и фиксирует bb
в группе 1 (..)
и захватывает cc
в группу 1 (...)
. Он терпит неудачу: нет никаких символов, оставшихся для потребления. +
означает один или несколько раз, и мы сопоставили ..
три раза, поэтому мы можем дать один или даже два. На этом этапе двигатель отказывается от последнего совпадения количественной группы (..)+
, которая является cc
. Мы вернулись, когда группа 1 была bb
. (...)
. Осталось всего два символа: cc
, поэтому он снова не работает. (..)+
, которая является bb
. На этом этапе группа 1 снова aa
. (...)
. Успешно: группа 2 - bbc
, а группа 1 - aa
Ссылка