Что означает «внешний» в этом прозермическом коде? - PullRequest
0 голосов
/ 27 февраля 2020

Здесь https://github.com/ProseMirror/prosemirror-state/blob/master/src/state.js#L122 - это простое зеркало js строка кода:

applyTransaction(rootTr) {
    //...
    outer: for (;;) {

Что означает «внешний» перед бесконечным l oop в этом javascript коде?

Upd.

Полный код функции:

  applyTransaction(rootTr) {
    if (!this.filterTransaction(rootTr)) return {state: this, transactions: []}

    let trs = [rootTr], newState = this.applyInner(rootTr), seen = null
    // This loop repeatedly gives plugins a chance to respond to
    // transactions as new transactions are added, making sure to only
    // pass the transactions the plugin did not see before.
    outer: for (;;) { // <--- this line !!!
      let haveNew = false
      for (let i = 0; i < this.config.plugins.length; i++) {
        let plugin = this.config.plugins[i]
        if (plugin.spec.appendTransaction) {
          let n = seen ? seen[i].n : 0, oldState = seen ? seen[i].state : this
          let tr = n < trs.length &&
              plugin.spec.appendTransaction.call(plugin, n ? trs.slice(n) : trs, oldState, newState)
          if (tr && newState.filterTransaction(tr, i)) {
            tr.setMeta("appendedTransaction", rootTr)
            if (!seen) {
              seen = []
              for (let j = 0; j < this.config.plugins.length; j++)
                seen.push(j < i ? {state: newState, n: trs.length} : {state: this, n: 0})
            }
            trs.push(tr)
            newState = newState.applyInner(tr)
            haveNew = true
          }
          if (seen) seen[i] = {state: newState, n: trs.length}
        }
      }
      if (!haveNew) return {state: newState, transactions: trs}
    }
  }

1 Ответ

1 голос
/ 27 февраля 2020

Это метка .

Помеченный оператор может использоваться с оператором break или continue. Это префикс оператора с идентификатором, к которому вы можете обратиться.

Взглянув на связанный источник, я предполагаю, что он существует, поэтому плагины могут ссылаться на него.

...