Функция получения окна для локального назначения переменной

0

Я пытаюсь заставить мою службу Angular2 использовать SDK LinkedIn javascript, который загружается скриптом linkedin. функциональность работает для получения данных и их возврата, но я не могу установить локальную переменную функции на данные, которые я получил от linkeidn

export class LinkedInAuthService {

constructor(

) {

}

linkedInAuthorization() {
    window['IN'].User.authorize();
    window['IN'].Event.on(window['IN'], 'auth', this.getLinkedInUserInfo);
}
getLinkedInUserInfo() {
    let linkedinInfo:any;
    window['IN']
        .API
        .Raw()
        .url("/people/~:(firstName,lastName,emailAddress,industry,specialties,positions)?format=json")
        .result(function(data:any){
            console.log(data) //logs data correctly
            linkedinInfo = data 
        });
    console.log(linkedinInfo) // undefined
}

AuthLinkedInUserforGlx() {
    console.log(localStorage.getItem('linkedinInfo'))
}
}

Я думаю, что проблема заключается в том, когда я устанавливаю linkedinInfo = data он не устанавливает локально, просто не уверен, как сделать его локальным

  • 0
    "data: any" это опечатка?
  • 0
    @Darkrum Нету, что не вызывает проблемы
Показать ещё 3 комментария
Теги:
angular
scope

1 ответ

0

Это сработало для меня

export class LinkedInService {
IN = window['IN'];
userProfile: Object;
constructor() {
    this.userProfile = JSON.parse(localStorage.getItem('profile'))
    this.IN.Event.on(this.IN, 'auth', this.getLinkedInUserInfo);
    console.log('end of constructor')
}

linkedInAuthorization(){
    this.IN.User.authorize();
    console.log('end of linkedInAuthorization service')
}

getLinkedInUserInfo() {
    this.IN.API.Raw()
        .url("/people/~:(firstName,lastName,emailAddress,industry,specialties,positions)?format=json")
        .result((data:any) => {
            localStorage.setItem('profile', JSON.stringify(data));
            this.userProfile = data;
        });
    console.log('end of getLinkedInUserInfo service');
    this.AuthLinkedInOnGlx
}

AuthLinkedInOnGlx (){

}



}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню