I don't get return value async/await function.
I give real code following:
class TranslateAlert{
......
public async translateEn2Ja(englishText: string): Promise<string | Error> {
englishText = englishText.replace(/(<([^>]+)>)/ig, " ").replace(/\r?\n/g, " ").replace(" ", " ").trim();
const translatedText = await this.translateAPI.post(
TranslateAPIURL, [{ "text": englishText }]
).catch((error) => { throw new Error(error) });
if (translatedText) {
return translatedText.data[0].translations[0].text;
}
}
}
Above code is used from follwoing code:
public createMessage(): string {
const t = new TranslateAlert();
const f = (async () => {
await t.translateEn2Ja("Test").then((v) => {
return v;
})
})();
console.log(f); <-------- this is "Promise { <pending> }"
}
I would like to get translated text. But I got only "Promise { }".
When I changed to following code, it didn't execute:
t.translateEn2Ja("Test").then((v) => {
console.log("=========================");
console.log(v);
console.log("=========================");
return v;
});
Could you let me know how to get correct data?