|
electron封装使用net.request,同步返回结果
代码封装成一个函数,并使用同步方法返回结果。以下是修改后的代码:
- const { app, BrowserWindow } = require('electron');
- const { net } = require('electron');
- function sendRequestSync(url) {
- return new Promise((resolve, reject) => {
- const request = net.request(url);
- request.on('response', (response) => {
- let data = '';
- response.on('data', (chunk) => {
- data += chunk;
- });
- response.on('end', () => {
- resolve(data);
- });
- });
- request.on('error', (error) => {
- reject(error);
- });
- request.end();
- });
- }
- function createWindow() {
- mainWindow = new BrowserWindow({
- width: 800,
- height: 600,
- webPreferences: {
- nodeIntegration: true
- }
- });
- mainWindow.loadFile('index.html');
- }
- app.whenReady().then(() => {
- createWindow();
- app.on('activate', function () {
- if (BrowserWindow.getAllWindows().length === 0) createWindow();
- });
- });
- app.on('window-all-closed', function () {
- if (process.platform !== 'darwin') app.quit();
- });
- // Example usage
- async function main() {
- try {
- const responseData = await sendRequestSync('https://example.com');
- console.log(responseData);
- // TODO: Handle the response data
- } catch (error) {
- console.error(error);
- // TODO: Handle the error
- }
- }
- main();
复制代码 在上面的代码中,我将发送请求的代码封装成了一个名为 sendRequestSync 的异步函数。该函数返回一个Promise,当请求完成时会解析响应数据。如果请求发生错误,将会拒绝Promise并返回错误信息。
在 main 函数中,我们使用 await 关键字调用 sendRequestSync 函数,并使用 try/catch 块处理可能的异常。您可以在 try 块中处理返回的响应数据,并在 catch 块中处理错误。
请注意,由于Electron的主进程是基于Node.js的,因此我们可以使用 async/await 语法来处理异步操作,并使用 Promise 来返回结果。
|
|