LINUX.ORG.RU

Видимость переменных в tepescript

 , ,


0

1

Есть массив

export class ItemService {
    public items = new Array<Item>();
}

В нем хочу загрузить список элементов из json

http.getString("http://server/content/news/export-json").then(function (r) {
  let json = JSON.parse(r);
  // Вот тут бы мне назначить элементы в свойство класса, но не выходит

  /// Не видит this.items
  this.items.push(...)


  // если так, то ничего не возвращает, хотя объект json сожержит json данные, но возвращаются "__zone_symbol__state": null,JS:     "__zone_symbol__value": []

  return json
}).catch();

Что я делаю не так? Как из .then(function (r) получить данные?


const that = this;
http.getString("http://server/content/news/export-json").then(function (r) {
  let json = JSON.parse(r);
  // Вот тут бы мне назначить элементы в свойство класса, но не выходит

  /// Не видит this.items
  that.items.push(...)


  // если так, то ничего не возвращает, хотя объект json сожержит json данные, но возвращаются "__zone_symbol__state": null,JS:     "__zone_symbol__value": []

  return json
}).catch();

Или вот так:

http.getString("http://server/content/news/export-json").then((r) => {
  let json = JSON.parse(r);
  // Вот тут бы мне назначить элементы в свойство класса, но не выходит

  /// Не видит this.items
  this.items.push(...)


  // если так, то ничего не возвращает, хотя объект json сожержит json данные, но возвращаются "__zone_symbol__state": null,JS:     "__zone_symbol__value": []

  return json
}).catch();

Почитай про обычные и стрелочные функции.

Deleted
()
Последнее исправление: Bizun (всего исправлений: 2)

Поменяй

.then(function (r) {

на
.then( r => {


Ну и потом почитай про arrow functions.

Bizun быстрее отредактировал свой коммент.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.