lib/component-helpers.js
function update (component, replaceNode=true) {
  if (syncUpdatesInProgressCounter > 0) {
    updateSync(component, replaceNode)
    return Promise.resolve()
  }

  let scheduler = getScheduler()

  if (!componentsWithPendingUpdates.has(component)) {
    componentsWithPendingUpdates.add(component)
    scheduler.updateDocument(function () {
      componentsWithPendingUpdates.delete(component)
      updateSync(component, replaceNode)
    })
  }

  return scheduler.getNextUpdatePromise()
}
function update (component, replaceNode=true) {
  if (syncUpdatesInProgressCounter > 0) {
    updateSync(component, replaceNode)
    return Promise.resolve()
  }

  let scheduler = getScheduler()

  if (!componentsWithPendingUpdates.has(component)) {
    componentsWithPendingUpdates.add(component)
    scheduler.updateDocument(function () {
      componentsWithPendingUpdates.delete(component)
      updateSync(component, replaceNode)
    })
  }

  return scheduler.getNextUpdatePromise()
}
function update ( component , replaceNode = true ) { if ( syncUpdatesInProgressCounter > 0 ) { updateSync ( component , replaceNode ) return Promise . resolve ( ) } let scheduler = getScheduler ( ) if ( ! componentsWithPendingUpdates . has ( component ) ) { componentsWithPendingUpdates . add ( component ) scheduler . updateDocument ( function ( ) { componentsWithPendingUpdates . delete ( component ) updateSync ( component , replaceNode ) } ) } return scheduler . getNextUpdatePromise ( ) }
This function receives a component that has already been associated with an element via a previous call to `initialize` and updates this element by calling `render` on the component.  When called in normal circumstances, it uses the scheduler to defer this update until the next animation frame, and will only perform one update of a given component in a given frame. This means you can call `update` repeatedly in a given tick without causing redundant updates.  If this function called during another synchronous update (for example, as a result of a call to `update` on a child component), the update is performed synchronously.  Returns a promise that will resolve when the requested update has been completed.
This function receives a component that has already been associated with an element via a previous call to initialize and updates this element by calling render on the component . When called in normal circumstances it uses the scheduler to defer this update until the next animation frame and will only perform one update of a given component in a given frame . This means you can call update repeatedly in a given tick without causing redundant updates . If this function called during another synchronous update ( for example as a result of a call to update on a child component ) the update is performed synchronously . Returns a promise that will resolve when the requested update has been completed .