gpt4 book ai didi

javascript - Angular 2/4 |类型 '{}' 不可分配给类型 'Object[]'

转载 作者:行者123 更新时间:2023-11-28 04:07:46 25 4
gpt4 key购买 nike

我目前遇到了一个无法解决的非常奇怪的错误。我有一个 SocketIoService 来处理我的 socket.io websocket。

SocketIoService

import { Injectable } from '@angular/core';

import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';
import 'rxjs/add/operator/map';
import { Socket } from 'ng-socket-io';


@Injectable()
export class SocketioService {

getRecentMessages(){
this.socket.emit('messages');
return this.socket
.fromEvent("messages")
.map( data => data );
}


constructor(private socket:Socket) {
console.log('[i] socketio service connected');
}

}

我从 ChatComponent 订阅了可观察的 getRecentMessages()

Chat.Component.ts

import { Component, OnInit } from '@angular/core';
import { SocketioService } from '../../services/socketio.service';

@Component({
selector: 'app-chat',
templateUrl: './chat.component.html',
styleUrls: ['./chat.component.css']
})
export class ChatComponent implements OnInit {

messages:Object[] = [];

constructor(
private socketioService:SocketioService
) {}

ngOnInit() {
this.socketioService.getRecentMessages().subscribe(messages => {
console.log('SOCKET received chat/messages DATA', messages);
this.messages = messages;
});
}


}

当 Chat.Component.ts 初始化时,它会订阅 getRecentMessages()。然后该函数发送到我的后端服务器,服务器响应一系列最新消息。看起来像这样: https://gyazo.com/ecedc406fec48a4e1224ae2aa47844d0

我尝试将消息数组设置为等于 Chat.Component.ts 中的响应,但收到错误类型“{}”不可分配给类型“Object[]”。这意味着 Angular/Typescript 认为响应是一个对象而不是数组。我该如何解决?谢谢:)

最佳答案

改变一下

来自

  messages:Object[] = [];

  messages:any = [];

关于javascript - Angular 2/4 |类型 '{}' 不可分配给类型 'Object[]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46544017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com