我试图将功能转换为任务。这是原始代码:
称呼:
this.socketConnect(endpoint, token);
功能:
socketConnect = async (token, endpoint) => {
this.socket = new WebSocket(endpoint + '?auth=' + token);
this.socket.addEventListener('open', () => {
this.socket.addEventListener('message', event => this.handleMessage(event));
this.socket.addEventListener('close', event => this.retryConnection(event, endpoint));
});
}
我一直在遵循实施 Ember 任务的结构。它全部编译没有问题,但是当它被调用时,它输出 this.socketConnect(...) 不是一个函数。之前我没有下面的返回,它输出 this.socketConnect 不是一个函数。这是我当前的任务代码。
进口:
import { task } from 'ember-concurrency';
称呼:
this.socketConnect(endpoint, authToken).perform();
功能:
@task *socketConnect(endpoint, token) {
yield async () => {
this.socket = new WebSocket(endpoint + '?auth=' + token);
this.socket.addEventListener('open', () => {
this.socket.addEventListener('message', event => this.handleMessage(event));
this.socket.addEventListener('close', event => this.retryConnection(event, endpoint));
});
return;
};
}
对此很陌生,所以我猜我缺少一些小东西。它与其他用途相匹配。另外,是否有人可以帮助将 websocket 生成功能切换为任务的好处?任何帮助将不胜感激,谢谢。