首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我无法访问socketcluster的socket.on中的变量

我无法访问socketcluster的socket.on中的变量
EN

Stack Overflow用户
提问于 2019-06-03 20:29:08
回答 1查看 75关注 0票数 0

我想将msg的值赋给变量sample,但它不能访问回调中的sample

代码语言:javascript
复制
import { Injectable } from '@angular/core';

import * as socketCluster from 'socketcluster-client';

@Injectable({
  providedIn: 'root'
})


export class DatamanagerService {

  socket = socketCluster.create({
    port: 8000
  });

  sample:string;

  constructor() { 

  }

  connect() {
    this.socket.on('connect', function () {
      console.log('CONNECTED');
    });

    this.socket.on('random', function (msg) {
      console.log('RANDOM: ' + msg);
      this.sample = msg; // <- here
    });
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-03 20:34:32

this上下文,几乎可以肯定。我不能完全确定在socket.on get中调用的函数的this上下文是什么,但是箭头函数使用词法this,所以这是一种解决方案。

代码语言:javascript
复制
this.socket.on('random', (msg) => {
  console.log('RANDOM: ' + msg);
  this.sample = msg;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56427407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档