Визуализировать шрифт google в путь пути svg, но обернуть как обещание - PullRequest
0 голосов
/ 13 июля 2020

У меня есть следующий сценарий, который выполняет асинхронную операцию c. Я хотел бы обернуть это обещанием, но я не уверен, как это сделать. исправьте это Angular совместимым способом.

1 Ответ

1 голос
/ 13 июля 2020

К тому времени, когда функция вернет 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);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...