Как сделать так, чтобы функция возвращала массив строки-обещания?
this.MyArray= [];
async OtherFunction() {
this.MyArray= await this.callQuery(); //***
}
async callQuery() {
return await new Promise((resolve, reject) => {
this.httpclient.get('').subscribe(response => {
resolve(response);
});
});
}
В этом примере мой tslint выдает ошибку над this.MyArray
в ссылке с //***
.Ошибка говорит: Type '{}' is not assignable to type 'any[]
.Но когда я добавляю объявление типа в функцию callQuery()
следующим образом:
async callQuery(pQuery): string[] {
, тогда я получаю ошибку tslint над string[]
, говоря: Type 'string[]' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value
.
Все, что я пытаюсь сделать правильно, это устранить ошибку tslint над this.MyArray
, как я объяснил в первом абзаце.Я предполагаю, что способ исправить это состоит в том, чтобы callQuery()
возвращал массив, но я не знаю, как заставить это работать без жалоб tslint.
Примечание: моя функция callQuery () всегда будетвернуть массив.Так что код работает правильно, это просто tslint, который дает мне ошибки.