{"id":29142403,"url":"https://github.com/think2011/ipc2promise","last_synced_at":"2025-06-30T19:37:41.167Z","repository":{"id":57276528,"uuid":"113536204","full_name":"think2011/ipc2promise","owner":"think2011","description":"将 electron 的 ipcMain 与 ipcRenderer 间的通信转换为 promise 模式","archived":false,"fork":false,"pushed_at":"2018-01-02T03:53:00.000Z","size":350,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-01T05:16:07.037Z","etag":null,"topics":["electron","ipc","ipcmain","ipcrenderer","promise"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/think2011.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-08T05:37:20.000Z","updated_at":"2022-03-03T09:07:45.000Z","dependencies_parsed_at":"2022-09-13T04:54:13.622Z","dependency_job_id":null,"html_url":"https://github.com/think2011/ipc2promise","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/think2011/ipc2promise","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/think2011%2Fipc2promise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/think2011%2Fipc2promise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/think2011%2Fipc2promise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/think2011%2Fipc2promise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/think2011","download_url":"https://codeload.github.com/think2011/ipc2promise/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/think2011%2Fipc2promise/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262839762,"owners_count":23372782,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["electron","ipc","ipcmain","ipcrenderer","promise"],"created_at":"2025-06-30T19:37:32.833Z","updated_at":"2025-06-30T19:37:41.156Z","avatar_url":"https://github.com/think2011.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ipc2promise\n将 electron 的 ipcMain 与 ipcRenderer 间的通信转换为 promise 模式\n\n![](https://raw.github.com/think2011/ipc2promise/master/demo.gif)\n\n## 安装\n\n### npm\n```sh\n$ npm i ipc2promise\n```\n\n## 使用\n\n### 主线程（main process）\n\n```js\nconst ipc2promise = require('ipc2promise')\n\nipc2promise.on('download', async (event, data, resolve ,reject) =\u003e {\n    try {\n        resolve(await download(data.url))\n    } catch (err) {\n        reject(new Error(err))\n    }\n})\n```\n\n### 渲染进程（renderer process）\n\n```js\nconst ipc2promise = require('ipc2promise')\n\nipc2promise.send('download', {url: 'https://xxxxxxxx.com/pkg.zip'})\n    .then((filePath) =\u003e {\n        console.log(filePath)\n    })\n    .catch((err) =\u003e {\n        console.error('Oops..')\n    })\n```\n\n## API\n\n### on(event, fn)\n\n- `event`\n  - `String` - 事件名\n- `fn`\n  - `Function(event, data, resolve, reject)` event: event, data: 获得的数据， resolve: 通过， reject: 拒绝\n\n### send(event, data)\n\n- `event`\n  - `String` - 事件名\n- `data`\n  - `*` - 要发送的数据\n\n\n## License\n\nThe MIT license.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthink2011%2Fipc2promise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthink2011%2Fipc2promise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthink2011%2Fipc2promise/lists"}