Rayn D
Rayn D

Reputation: 629

Access class property in typescript

I’ve a typescript class which built like following

export default class myClass{

myns: any;

async initializing() {
…
this.myns = na.map(function (item) {
  return item["name"];
});

// here we have value 
console.log(this.myns);

}


search(test, input) {

input = input || "";
return new Promise(function (resolve) {
    let fuz= fuzzy.filter(input, this.myns);  //here I want to access myns but here it comes undefined in debug
    resolve(
      fuz.map(function (el) {
        return el.original;
      })
    );
});



}

}

I want to access myns inside the function search (in the function search is undfiend but inside init it have data) search how can I do it ?

not just myns is undefined this is undefined also

Upvotes: 0

Views: 93

Answers (1)

Odinn
Odinn

Reputation: 808

Try doing (resolve) => { instead of function (resolve) { so it will bind this to the callback

EDIT:

Running this code worked for me:

class myClass {
  myns: any;

  async initializing() {
    this.myns = [{ name: 'test1' }, { name: 'test2' }].map(function (item) {
      return item["name"];
    });

    console.log(this.myns);
  }

  search(test, input) {
    input = input || "";

    return new Promise((resolve) => {
      console.log('test');
      console.log(this.myns);

      resolve();
    });
  }
}

const test = new myClass();

test.initializing();
test.search('lala', 'lala2');

As expected the output was:

[ 'test1', 'test2' ]
test
[ 'test1', 'test2' ]

What is that fuzzy library you are using?

Upvotes: 1

Related Questions