Javascript 关于'的困惑;使用Redux';中的store.subscribe()方法创建Unsubscribe();

Javascript 关于'的困惑;使用Redux';中的store.subscribe()方法创建Unsubscribe();,javascript,redux,react-redux,Javascript,Redux,React Redux,我正在学习如何使用store.subscribe()方法创建Unsubscribe()。 下面是代码。我不理解逻辑:为什么我们使用store.subscribe方法来声明unsubscribe常量作为store的unsubscribe函数。(从字面上说,subscribe应该为商店订阅“某物”,对吗?) 另外,请查看以下修改的代码:即使只声明常量unsubscribe,控制台仍然执行store.subscribe方法 import store from './store'; const uns

我正在学习如何使用store.subscribe()方法创建Unsubscribe()。 下面是代码。我不理解逻辑:为什么我们使用store.subscribe方法来声明unsubscribe常量作为store的unsubscribe函数。(从字面上说,subscribe应该为商店订阅“某物”,对吗?)

另外,请查看以下修改的代码:即使只声明常量unsubscribe,控制台仍然执行store.subscribe方法

import store from './store';

const unsubscribe = store.subscribe(
    () => console.log("Store changed!", store.getState())
);

store.dispatch({
    type: "bugAdded",
    payload: {
        description: "Bug1"
    }
});

// unsubscribe();

store.dispatch({
    type: "bugRemoved",
    payload: {
        id: 1
    }
});
上面的代码与下面的代码具有相同的输出(混乱,任何人都可以解释)


subscribe将只创建一个对我们的存储的订阅,它将侦听存储并等待它更改,每次存储更改时,它将执行我们传递给它的回调。当我们订阅存储时,它会返回一个函数来注销该订阅,我们可以随时调用该函数


您可以在

上了解更多信息,谢谢您的回答。你能看看最后两个密码吗?我不明白为什么它们有相同的输出。一:将STORE.SUBSCRIBE方法分配给UNSUBSCRIBE常量(我的理解是,即使我声明了一个常量,如果我不使用这个常量,它也不应该执行);另一种方法:简单调用STORE.SUBSCRIBE方法。简单调用STORE.SUBSCRIBE的方法将永远保留对存储的订阅,而将其分配给unsubscribe变量的方法将在稍后访问unsubscribe函数以删除存储订阅
import store from './store';

const unsubscribe = store.subscribe(
    () => console.log("Store changed!", store.getState())
);

store.dispatch({
    type: "bugAdded",
    payload: {
        description: "Bug1"
    }
});

// unsubscribe();

store.dispatch({
    type: "bugRemoved",
    payload: {
        id: 1
    }
});
import store from './store';

store.subscribe(
    () => console.log("Store changed!", store.getState())
);

store.dispatch({
    type: "bugAdded",
    payload: {
        description: "Bug1"
    }
});

store.dispatch({
    type: "bugRemoved",
    payload: {
        id: 1
    }
});