当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript core.setSingle函数代码示例

本文整理汇总了TypeScript中@statecraft/core.setSingle函数的典型用法代码示例。如果您正苦于以下问题:TypeScript setSingle函数的具体用法?TypeScript setSingle怎么用?TypeScript setSingle使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了setSingle函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: while

        ;(async () => {
          while (shouldReconnect) {
            console.log('... trying to reconnect ...')

            let r: TinyReader<N.SCMsg>, w: TinyWriter<N.CSMsg>
            let netConnected = false
            try {
              setSingle(status, 'connecting')
              ;[r, w] = await connect()
              netConnected = true
            } catch (e) {
              console.warn('Reconnection failed', e.message)
            }

            if (netConnected) try {
              console.log('createStore')
              await createStore(r!, w!, {
                ...opts,
                restoreFrom: innerStore!,
                syncReady(store) {
                  // Ok, we've reconnected & gotten our hello message.

                  // We have to initialize here to avoid an event loop frame
                  // where innerStore is set incorrectly.
                  innerStore = store
                  setSingle(status, 'connected')
                  console.warn('Reconnected')
                }
              })
              break
            } catch (e) {
              // TODO: Consider calling reject instead of resolve here - so the
              // error makes an exception by default.
              if (e instanceof err.StoreChangedError) {
                console.log('uid changed')
                w!.close()
                uidChanged.reject(e)
                break
              } else throw e
            }

            setSingle(status, 'waiting')
            await wait(5000)
            console.log('done waiting')
          }
        })()
开发者ID:josephg,项目名称:statecraft,代码行数:46,代码来源:reconnectingclient.ts

示例2: setSingle

    .then(initialStore => {
      innerStore = initialStore
      setSingle(status, 'connected')

      // This is basically a proxy straight to innerStore.
      const s: I.Store<Val> = {
        storeInfo: initialStore.storeInfo,
        fetch(...args) { return innerStore!.fetch(...args) },
        getOps(...args) { return innerStore!.getOps(...args) },
        mutate(...args) { return innerStore!.mutate(...args) },
        subscribe(...args) { return innerStore!.subscribe(...args) },
        close() {
          shouldReconnect = false
          innerStore!.close()
          innerStore = null // Error if we get subsequent requests
          setSingle(status, 'closed')
          // ... And stop reconnecting.
        }
      }
      resolve(s)
    }, reject)
开发者ID:josephg,项目名称:statecraft,代码行数:21,代码来源:reconnectingclient.ts

示例3: inputPortData

  access.onstatechange = e => {
    // Print information about the (dis)connected MIDI controller
    const {port} = e
    const set = port.type === 'input' ? data.inputs : data.outputs
    const deviceIdx = set.findIndex(({id}) => id === port.id)
    if (deviceIdx >= 0) {
      set[deviceIdx].state = port.state
    } else {
      set.push(port.type === 'input' ? inputPortData(port) : portData(port))
      if (port.type === 'input') subscribeToInput(port as WebMidi.MIDIInput, set.length-1)
    }
    setSingle(localStore, data)

    // console.log('onstatechange', e.port.name, e.port.manufacturer, e.port.state);
    // console.log(e.port.type)
  }
开发者ID:josephg,项目名称:statecraft,代码行数:16,代码来源:client.ts

示例4: Promise

  const ready: Promise<I.Store<Val>> = new Promise((resolve, reject) => {
    const opts: ClientOpts<Val> = {
      preserveState: true,
      onClose() {
        // We don't clear innerStore yet - all requests will still go there
        // until we change the guard.
        setSingle(status, 'waiting')

        // This is pretty rough.
        ;(async () => {
          while (shouldReconnect) {
            console.log('... trying to reconnect ...')

            let r: TinyReader<N.SCMsg>, w: TinyWriter<N.CSMsg>
            let netConnected = false
            try {
              setSingle(status, 'connecting')
              ;[r, w] = await connect()
              netConnected = true
            } catch (e) {
              console.warn('Reconnection failed', e.message)
            }

            if (netConnected) try {
              console.log('createStore')
              await createStore(r!, w!, {
                ...opts,
                restoreFrom: innerStore!,
                syncReady(store) {
                  // Ok, we've reconnected & gotten our hello message.

                  // We have to initialize here to avoid an event loop frame
                  // where innerStore is set incorrectly.
                  innerStore = store
                  setSingle(status, 'connected')
                  console.warn('Reconnected')
                }
              })
              break
            } catch (e) {
              // TODO: Consider calling reject instead of resolve here - so the
              // error makes an exception by default.
              if (e instanceof err.StoreChangedError) {
                console.log('uid changed')
                w!.close()
                uidChanged.reject(e)
                break
              } else throw e
            }

            setSingle(status, 'waiting')
            await wait(5000)
            console.log('done waiting')
          }
        })()
      },
    }


    setSingle(status, 'connecting')
    connect()
    .then(([r, w]) => createStore(r, w, opts))
    .then(initialStore => {
      innerStore = initialStore
      setSingle(status, 'connected')

      // This is basically a proxy straight to innerStore.
      const s: I.Store<Val> = {
        storeInfo: initialStore.storeInfo,
        fetch(...args) { return innerStore!.fetch(...args) },
        getOps(...args) { return innerStore!.getOps(...args) },
        mutate(...args) { return innerStore!.mutate(...args) },
        subscribe(...args) { return innerStore!.subscribe(...args) },
        close() {
          shouldReconnect = false
          innerStore!.close()
          innerStore = null // Error if we get subsequent requests
          setSingle(status, 'closed')
          // ... And stop reconnecting.
        }
      }
      resolve(s)
    }, reject)
  })
开发者ID:josephg,项目名称:statecraft,代码行数:84,代码来源:reconnectingclient.ts


注:本文中的@statecraft/core.setSingle函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。