Learn

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 }
)