Async Support
Basically, you can use async
and await
in your templates as long as you configure Eta to be in async mode. Remember: if you're in async mode and are working with partials, you need to await include(...)
!
Example
function asyncFunc() {
return new Promise((resolve) => {
setTimeout(() => {
resolve("HI FROM ASYNC")
}, 20)
})
}
let result = await Eta.render(
"<%= it.name %>: <%= await it.asyncFunc() %>",
{ name: "Ada Lovelace", asyncFunc: asyncFunc },
{ async: true }
)
// 'Ada Lovelace: HI FROM ASYNC'
Special Functions
There are also two functions, renderAsync
and renderFileAsync
which are the equivalents of their respective functions with builtin async
support.
Example
function asyncFunc() {
return new Promise((resolve) => {
setTimeout(() => {
resolve("HI FROM ASYNC")
}, 20)
})
}
let result = await Eta.renderAsync(
"<%= it.name %>: <%= await it.asyncFunc() %>",
{ name: "Ada Lovelace", asyncFunc }
)