SliceMsgToLastMsg.js 754 字节
Newer Older
DCloud_JSON's avatar
1.2.4  
DCloud_JSON 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
export default class SliceMsgToLastMsg {
	constructor(arg) {
		this.$ = arg
	}
	// 所有待插入的消息数据
	msgs = ''
	// 是否正在分割消息数据
	sliceMsgIng = false
	addMsg(msg) {
		// console.log('msg', msg);
		this.msgs += msg
		if (this.sliceMsgIng === false) {
			this.sliceMsg()
		}
	}
	sliceMsg() {
		this.sliceMsgIng = true
		let msg = this.msgs.slice(0, 1)
		// console.log('msg', msg);
		// 更新最后一条消息的内容
		// console.log('this.$', this.$);
		this.$.updateLastMsg(lastMsg => {
			lastMsg.content += msg
		})
		this.msgs = this.msgs.slice(1)
		if (this.msgs.length) {
			setTimeout(() => {
				this.sliceMsg(this.msgs)
			}, 30);
		} else {
			this.sliceMsgIng = false
		}
	}
}