машинопись используя класс свойств для нескольких звонков - PullRequest
0 голосов
/ 24 апреля 2020

Я создаю класс, который должен вызывать другой класс и получать данные

Например,

import { SC } from "./svc/service";





export default class myClass{

//Here define the variable 
sc: SC;

async initializing() {

// Here I’ve created the instance
this.sc = new SC();

this.sc.getServices()

}


Async   testValue{

//Now when I call to the function from here in debug I see that this inside `SERVICE_INSTANCE` is empty , why ????
this.sc.getServices()

} 


}



export default class SC{


SERVICE_INSTANCE: string[] = [];


async getServices(

//If the function already called I’m returning the value

If(this.SERVICE_INSTANCE){
return this.SERVICE_INSTANCE;
}

….
//here  when the function called first I got data and assign the service instance to avoid hits
this.SERVICE_INSTANCE = GetData();


}

}

Почему, когда я вызываю функцию getService во второй раз, я получил If(this.SERVICE_INSTANCE){ что не определено почему?

Я могу сохранить свойство на глобальном уровне, но я хочу избежать его, Я не создаю другой экземпляр , только один экземпляр внутри initilizing и использую его в функции testValue. .

Проблема в том, что во втором вызове this не определено

1 Ответ

1 голос
/ 24 апреля 2020

Поскольку ваш SERVICE_INSTANCE имеет тип string [], ваша проверка if(this.SERVICE_INSTANCE) всегда будет истинной, поэтому всегда возвращает пустой массив.

Вам необходимо проверить if(this.SERVICE_INSTANCE.length)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...