1

バックグラウンド スクリプトに次のコードがあります。別のアプリにメッセージを送信しましたが、失敗した場合、これは 2 回呼び出されます (注: 私のコールバックは 2 回呼び出されます。私のコード呼び出しsendMessageは 1 回だけ呼び出されます)。

chrome.runtime.sendMessage(
    otherAppId,
    someObject,
    function (response)
    {
        var lastError = chrome.runtime.lastError;

        //This likely means it doesn't exist ("Could not establish connection. Receiving end does not exist.")
        if ( lastError && lastError.message.indexOf( "not exist" ) !== -1 )
        {
            ///This gets called twice!
            console.log( "we're here twice?!" );
        }

        //This is called once
        else console.log( "Was successful, so called only once" );
    }
);

再試行を停止するためにキャンセルする方法はありますか? エラーによってコールバックが 2 回呼び出されるのはなぜですか?

4

1 に答える 1

0

Function.prototype.bind私は自分自身を(私が含めたJSライブラリで)定義していましたが、これが問題の原因でした! これにより多くのエラーが発生し、コールバックが 2 回発生する理由がわかりませんが、それを削除するとすべてのエラーがなくなります!

于 2013-06-11T23:40:01.677 に答える