Для полноты другого ответа на ваш второй вопрос: вы можете использовать partial в модуле functools .
При импорте add от оператора в качестве Криса Лутца предлагается пример:
from functools import partial
from operator import add # add(a, b) -- Same as a + b.
adders = [0,1,2,3]
for i in [0,1,2,3]:
# store callable object with first argument given as (current) i
adders[i] = partial(add, i)
print adders[1](3)
вы также можете сделать это
import { Component, OnInit } from "@angular/core";
import { HttpClient } from '@angular/common/http';
@Component({
selector: "Home",
moduleId: module.id,
templateUrl: "./home.component.html",
styleUrls: ["./home.component.css"]
})
export class HomeComponent implements OnInit {
constructor(private http: HttpClient) {
}
ngOnInit(): void {
this.http.get('https://somewebsite.com',
{
params: { 'sorter': '', 'isAscending': 'true', 'searchString': '',
'currentPage': '1', 'itemsPerPage': '300' },
headers: {
"Authorization": "Basic encryptedcodehere"
}
}).subscribe(data => { // no need to write the function you can simply create a arrow function too
var theData = JSON.parse(data);
if (theData.Data != null && theData.Data.length > 0) {
log(theData.Data);
}
});
}
}
, он выдает ошибку, потому что тогда это метод из обещания
Использование subscribe
, вероятно, лучший способ. Однако, если вы действительно хотите использовать then
(что может пригодиться, если вам нужно объединить вызовы в цепочку), вы можете преобразовать наблюдаемое в обещание, используя метод toPromise()
this.http.get('https://somewebsite.com',
{
//...
}).toPromise().then(response => {
//...
});