Service QZ在角度安装和未找到websocket时出现错误
我正试图让我的angular webapp与star sp 700收据打印机一起工作,并正试图将qz托盘集成到我的软件中。我在尝试安装下面显示的@types/qz托盘时出错。我也犯了一个错误Service QZ在角度安装和未找到websocket时出现错误,service,angular6,network-printers,qz-tray,Service,Angular6,Network Printers,Qz Tray,我正试图让我的angular webapp与star sp 700收据打印机一起工作,并正试图将qz托盘集成到我的软件中。我在尝试安装下面显示的@types/qz托盘时出错。我也犯了一个错误 unresolved variable websocket 在23号线和 unresolved variable api 第16行 有人能告诉我如何解决这个问题吗?如果有更好的方法通过angular打印机打印到这台或另一台收据打印机上 import { Injectable } from '@angul
unresolved variable websocket
在23号线和
unresolved variable api
第16行
有人能告诉我如何解决这个问题吗?如果有更好的方法通过angular打印机打印到这台或另一台收据打印机上
import { Injectable } from '@angular/core';
import { from as fromPromise, Observable, throwError } from 'rxjs';
import { HttpErrorResponse } from '@angular/common/http';
import { catchError, map } from 'rxjs/operators';
import * as qz from 'qz-tray';
import { sha256 } from 'js-sha256';
@Injectable({
providedIn: 'root'
})
export class PrinterService {
//npm install qz-tray js-sha256 rsvp --save
constructor() {
qz.api.setSha256Type(data => sha256(data));
qz.api.setPromiseType(resolver => new Promise(resolver));
}
// Get the list of printers connected
getPrinters(): Observable<string[]> {
console.log('+++++++++PrinterService+++++');
return fromPromise(
qz.websocket.connect().then(() => qz.printers.find())
)
map((printers: string[]) => printers)
, catchError(this.errorHandler);
}
// Get the SPECIFIC connected printer
getPrinter(printerName: string): Observable<string> {
return fromPromise(
qz.websocket.connect()
.then(() => qz.printers.find(printerName))
)
map((printer: string) => printer)
, catchError(this.errorHandler);
}
// Print data to chosen printer
printData(printer: string, data: any): Observable<any> {
const config = qz.configs.create(printer);
return fromPromise(qz.print(config, data))
map((anything: any) => anything)
, catchError(this.errorHandler);
}
private errorHandler(error: HttpErrorResponse) {
if (error.error instanceof ErrorEvent) {
console.log(error.error);
console.log('An error occurred:', error.status);
return throwError(error.error);
} else {
console.log('An error occurred:', error.status);
console.log(error.error);
return throwError(error.error);
}
};
}
从'@angular/core'导入{Injectable};
从“rxjs”导入{from as-fromPromise,Observable,throwerr};
从“@angular/common/http”导入{HttpErrorResponse};
从“rxjs/operators”导入{catchError,map};
从“qz托盘”导入*作为qz;
从“js-sha256”导入{sha256};
@注射的({
providedIn:'根'
})
导出类PrinterService{
//npm安装qz托盘js-sha256 rsvp--保存
构造函数(){
qz.api.setSha256Type(数据=>sha256(数据));
setPromiseType(解析器=>newpromise(解析器));
}
//获取已连接的打印机列表
getPrinters():可观察{
console.log('+PrinterService'+;
还债(
然后(()=>qz.printers.find())
)
映射((打印机:字符串[])=>打印机)
,catchError(this.errorHandler);
}
//获取特定的已连接打印机
getPrinter(printerName:string):可观察{
还债(
qz.websocket.connect()
.then(()=>qz.printers.find(printerName))
)
映射((打印机:字符串)=>打印机)
,catchError(this.errorHandler);
}
//将数据打印到所选打印机
printData(打印机:字符串,数据:任意):可观察{
const config=qz.configs.create(打印机);
从Promise返回(qz.print(配置,数据))
地图((任意:任意)=>任意)
,catchError(this.errorHandler);
}
私有errorHandler(错误:HttpErrorResponse){
if(error.error instanceof ErrorEvent){
console.log(error.error);
console.log('发生错误:',error.status);
返回投掷器(error.error);
}否则{
console.log('发生错误:',error.status);
console.log(error.error);
返回投掷器(error.error);
}
};
}
未解析变量websocket
未解析变量
api
这两种迹象都表明qz-tray.js
没有正确加载
对象qz.api
和qz.websocket
都是qz
命名空间的一部分。如果它们不可用,则qz
从未正确导入
以下是QZ托盘以角度运行的工作示例:
- 导入行似乎是正确的,并且与的相匹配
应该是,但是您可以安全地将其从“qz托盘”转换为import*as qz
import{default as qz}李>
console.log(qz);
- 如果加载正确,它应该显示如下内容:
qz托盘npm卸载qz托盘;npm安装qz托盘
等
未解析变量websocket
未解析变量api
这两种迹象都表明qz-tray.js
没有正确加载
对象qz.api
和qz.websocket
都是qz
命名空间的一部分。如果它们不可用,则qz
从未正确导入
以下是QZ托盘以角度运行的工作示例:
- 导入行似乎是正确的,并且与的相匹配
import*as qz
应该是,但是您可以安全地将其从“qz托盘”转换为import{default as qz}李>
作为故障排除步骤,您可以调用:
console.log(qz);
- 如果加载正确,它应该显示如下内容:
另一种故障排除技术是使用您首选的软件包管理器卸下并重新安装qz托盘npm卸载qz托盘;npm安装qz托盘
等