所以我使用redux-saga并且我有生成器功能:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="about-desc">
<p>
Lorem ipsum dolor sit <span class="animation">amet</span>, consectetur adipisicing elit. <span class="animation"> Officia reprehenderit</span>, <span class="animation"> sit eligendi</span> deserunt, blanditiis quas porro omnis provident quidem voluptate! Fugit ipsa mollitia, atque commodi asperiores, rerum dicta ratione aut.
</p>
</div>
一切都按预期工作,有一个请求,如果响应正常,我的组件中的状态会发生变化。
现在我想要一个 websocket连接,WAMP要准确。我写了一个看起来像这样的wamp函数:
export function * getData(api, action) {
const response = yield call(api.getData)
if (response.ok) {
let { data } = response;
yield put(MyActions.responseSuccess(data))
}
}
现在我想要做的是在我的生成器函数中使用这个const default_callbacks = {
onopen: () => console.log('Default callback - onopen.')
}
const openConnection = (data, callbacks = default_callbacks) => {
const wsuri = "wss://wssuri";
let connection = new wamp.Connection({
url: wsuri,
realm: "realm1"
});
connection.onopen = () => {
console.log('Connection opened')
callbacks.onopen();
}
// Some code managing the data
connection.open()
}
export default { openConnection }
函数,并提供将改变我的应用程序状态的回调(因为将在此{{1}内订阅一个频道}})。所以我修改了我的生成器函数看起来像这样:
openConnection
现在在我的控制台中,我看到日志说连接已打开,但状态没有变化。
我做错了什么?也许我对这个问题的整个方法是错误的?