0

ipc プロセスを使用して、render から main に文字列を渡そうとしています。何らかの理由で、a) 繰り返し発砲し、b) 送信する前に文字列全体が設定されていることを明確に確認できますが、一度に 1 つの文字のみを送信します。一体何が起こっているのか、これを正しい文字列を含む単一の呼び出しに圧縮するにはどうすればよいですか?

レンダラー:

const electron = window.require('electron');
.
.
.
//by now username = "demouser"
electron.ipcRenderer.once('verifySubscriptionResponse', (event, token, errorMessage) => {
    console.log('handleLoginAttempt');
    console.log('username variable:' + username);
    electron.ipcRenderer.send("proceedToApp", username);
}

主要:

const { ipcMain } = require('electron');

ipcMain.on("proceedToApp", (event, username) => {
    console.log('passed in username:' + username);
    global.loggedInUser = username;
    console.log('set username:' + global.loggedInUser)
}

レンダラーでは、単純な出力を取得しています

> handleLoginAttempt
> usernameVariable: demouser

しかし、主に、次の出力が得られます。

passed in username:d
set username:d
passed in username:de
set username:de
passed in username:dem
set username:dem
passed in username:demo
set username:demo
passed in username:demou
set username:demou
passed in username:demous
set username:demous

編集: パズルの手がかりの 1 つ、ユーザー名は状態フック変数でした。それをリテラル文字列と交換したところ、文字列全体が送信されましたが、まだ数回送信されています。したがって、この問題の半分は、電子が反応フックのロジックでうまく機能しない可能性があります。

4

0 に答える 0