正确的错误处理-在javascript / Ionic中

时间:2018-08-24 11:02:57

标签: javascript angular ionic-framework error-handling

我正在使用Ionic 3应用程序,该应用程序在蓝牙打印机上打印账单。我有点迷茫,如何正确处理这段代码中的错误:

  print(billToPrint){
    return this.bluetoothSerial.list().then((data)=>{
      if(data.length==0) throw new Error("no printer connected");
      console.log(data);
      console.log(data[0]);
      let subscription=this.bluetoothSerial.connect(data[0].address).subscribe(data=>{
        console.log("subscribnuto",data);
        this.bluetoothSerial.write(billToPrint).then((data)=>{
          console.log("data success", data);
        });
        subscription.unsubscribe();
      },err=>{
        throw new Error("Connection to printer failed");
      });
    },err=>{
      console.log(err);
    });
  }

在这种情况下处理错误的正确方法是什么?我希望错误随具体的错误消息一起传播,因此我可以轻松地在页面中处理它们(此打印方法已投入使用)并显示错误消息警报。有任何想法吗?还是代码的结构不好?

1 个答案:

答案 0 :(得分:0)

而不是引发这些错误。您可以使用alert()通知他们。

print(billToPrint){
    return this.bluetoothSerial.list().then((data)=>{
      if(data.length === 0){ Promise.reject(new Error("no printer connected"));}
      // console.log(data);
      // console.log(data[0]);
      let subscription=this.bluetoothSerial.connect(data[0].address).subscribe(data=>{
        if(data){
           // console.log("subscribe",data);
           this.bluetoothSerial.write(billToPrint).then((data)=>{
             // console.log("data success", data);
             Promise.resolve(true);
           });
           subscription.unsubscribe();
        }else{
         Promise.resolve(false);
        }
      },err=>{
        Promise.reject(new Error("Connection to printer failed"));
      });
    },err=>{
      Promise.reject(new Error("error your processing your request"));
    });
  }