Angular swPu sh .requestSubscription ничего не возвращает при первом вызове - PullRequest
1 голос
/ 30 января 2020

Я использую swPush в моем angular проекте. При этом событие this.swPush.requestSubscription() вызывается нажатием кнопки.

Например:

это getdeviceToken вызовет

getDeviceToken(): Promise<any> {
        console.log('getting device token')
        return new Promise(async (resolve, reject) => {
                if (this.swPush.isEnabled) {
                    console.log('before subscription')
                    let sub = await this.swPush.requestSubscription({
                        serverPublicKey: this.VAPID_PUBLIC_KEY
                    })
                    console.log('temp --------', sub)
                    if(sub) {
                        this.device_token = sub;
                        if(sub) {
                            console.log('if sub')
                            resolve(this.device_token);
                        }else{
                            console.log('else sub')
                            reject({ message: "Error getting device id"});
                        }
                    } else{
                        reject({ message: "Error getting device id"});
                    }
                } else{
                    console.log('sw is not enabled');
                    reject({ message: "Error getting device id"});
                }
    }

После полной перезагрузки, когда я нажимаю кнопку в первый раз, она застревает на
console.log('before subscription')

и ничего не возвращает. Это делает мое приложение непригодным для использования, так как функция не возвращает ничего, даже не является ошибкой. Поэтому я не могу двигаться вперед.

Но когда я делаю простую перезагрузку и снова нажимаю кнопку, это работает, и this.swPush.requestSubscription() возвращает мне обещание, поэтому мое приложение движется вперед. Кто-нибудь знает, почему он не работает в первый раз? Или любые предложения по улучшению этого.

...