INNER CODE UNIT · TypeScript

Promise

1095071913/maozi-cloud · maozi-cloud-develop-admin/electron/configs/index.ts:53

  return new Promise((resolve, reject) => {
    void (async () => {
      const pathEnv = await getShellPath()
      const child = spawn(cmd, args, { env: { ...process.env, PATH: pathEnv } })
      let out = ''
      let err = ''
      const timer = setTimeout(() => child.kill(), timeoutMs)
      child.stdout.on('data', (d) => (out += d))
      child.stderr.on('data', (d) => (err += d))
      child.on('error', (e) => {
        clearTimeout(timer)
        reject(new Error(`无法执行 ${cmd}: ${e.message}`))
      })
      child.on('close', (code) => {
        clearTimeout(timer)
        const text = (out || err).trim()
        if (code === 0) resolve(text || '执行成功')
        else reject(new Error(text || `执行失败,退出码 ${code}`))

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…