JavaScript 函数执行 consol.log(var) 但不执行 var2 = var
JavaScript function does consol.log(var) but doesn't var2 = var
我遵循本教程:https://developers.google.com/web/fundamentals/codelabs/push-notifications#notification_click 并将其实现到 VueJS。
在创建的钩子上,我运行这个函数:
register() {
if ("serviceWorker" in navigator && "PushManager" in window) {
console.log("Service Worker and Push is supported");
navigator.serviceWorker
.register("/sw.js")
.then(function (swReg) {
console.log("Service Worker is registered", swReg);
swRegistration = swReg;
})
.catch(function (error) {
console.error("Service Worker Error", error);
});
} else {
console.warn("Push messaging is not supported");
pushButton.textContent = "Push Not Supported";
}
}
我在 Chrome、Safari 和 Firefox 中的控制台打印:
"Service Worker and Push is supported"
"Service Worker is registered >ServiceWorkerRegistration"
"Service Worker Error ReferenceError: swRegistration is not defined"
有谁知道为什么可以记录 swReg,但没有分配 swRegistration?
.then(function (swReg) {
console.log("Service Worker is registered", swReg);
swRegistration = swReg;
可能是因为 swRegistration
没有定义?尝试在代码段的顶部添加 let swRegistration
,一切都会好起来的。
享受吧。
你应该先声明swRegistration,你不会面临同样的问题
swReg 问题,因为它是 register promise 的结果。
register() {
let swRegistration = null;
if ("serviceWorker" in navigator && "PushManager" in window) {
console.log("Service Worker and Push is supported");
navigator.serviceWorker
.register("/sw.js")
.then(function (swReg) {
console.log("Service Worker is registered", swReg);
swRegistration = swReg;
})
.catch(function (error) {
console.error("Service Worker Error", error);
});
} else {
console.warn("Push messaging is not supported");
pushButton.textContent = "Push Not Supported";
}
}
我遵循本教程:https://developers.google.com/web/fundamentals/codelabs/push-notifications#notification_click 并将其实现到 VueJS。
在创建的钩子上,我运行这个函数:
register() {
if ("serviceWorker" in navigator && "PushManager" in window) {
console.log("Service Worker and Push is supported");
navigator.serviceWorker
.register("/sw.js")
.then(function (swReg) {
console.log("Service Worker is registered", swReg);
swRegistration = swReg;
})
.catch(function (error) {
console.error("Service Worker Error", error);
});
} else {
console.warn("Push messaging is not supported");
pushButton.textContent = "Push Not Supported";
}
}
我在 Chrome、Safari 和 Firefox 中的控制台打印:
"Service Worker and Push is supported"
"Service Worker is registered >ServiceWorkerRegistration"
"Service Worker Error ReferenceError: swRegistration is not defined"
有谁知道为什么可以记录 swReg,但没有分配 swRegistration?
.then(function (swReg) {
console.log("Service Worker is registered", swReg);
swRegistration = swReg;
可能是因为 swRegistration
没有定义?尝试在代码段的顶部添加 let swRegistration
,一切都会好起来的。
享受吧。
你应该先声明swRegistration,你不会面临同样的问题 swReg 问题,因为它是 register promise 的结果。
register() {
let swRegistration = null;
if ("serviceWorker" in navigator && "PushManager" in window) {
console.log("Service Worker and Push is supported");
navigator.serviceWorker
.register("/sw.js")
.then(function (swReg) {
console.log("Service Worker is registered", swReg);
swRegistration = swReg;
})
.catch(function (error) {
console.error("Service Worker Error", error);
});
} else {
console.warn("Push messaging is not supported");
pushButton.textContent = "Push Not Supported";
}
}