PdfMake:函数getBase64返回未定义的值

时间:2017-11-07 09:43:14

标签: javascript typescript callback promise pdfmake

我正在使用 PdfMake 生成一个Pdf文件,并使用方法getBase46() base64 字符串数组中对此进行编码,如下所示:

 let base64: string;

 this.pdf.createPdf(buildPdf(pdfModel)).getBase64(
      function(encodedString) {
        base64 = encodedString;
        console.log(base64); // base64 is not undefined and is a some string
      }
 );

 console.log(base64); // base64 is undefined here

如何在base64

之外获取变量function

2 个答案:

答案 0 :(得分:1)

这是一个异步操作,您只能保证在回调函数内定义该值。

答案 1 :(得分:0)

我终于通过将我的类的实际上下文this)绑定到回调function的上下文来解决它,以便var base64也可以在通话结束时设置:

    let base64: string;

    this.pdf.createPdf(buildPdf(pdfModel)).getBase64(
        function(encodedString) {
           base64 = encodedString;
           console.log(this.base64); // this.base64 refers to var on the top
        }.bind(this) // To bind the callback with the actual context
    );