К тому времени, когда функция вернет svg
значение переменной будет нулевым, потому что оно установлено в функции asyn c. Поэтому вам нужно вернуть Promise
.
static renderGoogleFontToSvgPath(): Promise<string> {
const url = 'http://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo18G0wx40QDw.ttf';
const text = 'hello';
const size = 14;
const union = false;
const bezierAccuracy = 0;
let svg = null;
return new Promise(resolve => {
opentype.load(url, (err, font) => {
const textModel = new makerjs.models.Text(font, text, size, union, false, bezierAccuracy);
svg = makerjs.exporter.toSVG(textModel);
// produces code here
resolve(svg);
});
});
}
и использовать его, как показано ниже:
async ngOnInit(): void {
const font = await BuilderSidebarTextService.renderGoogleFontToSvgPath();
console.log(font);
}