そのため、RequireJS と Socket.io を使用して、socket.io リソースが利用可能かどうかを確認し、接続時にアプリをブートストラップするアプリを作成しています。socket.io が一時的にダウンした場合に備えて、requireJS でリソースが利用可能になるまでリソースを数回ポーリングしてから、アプリケーションの初期化を続行したいと考えています。
残念なことに (またはおそらく幸いなことに?)、require には、ロードされないスクリプトの scripterrors を登録するある種のキャッシュ メカニズムがあるようです。リソースが利用可能になった場合でもエラーをスローします。
これは見落としですか、それともこのエラーをキャッシュしておく理由はありますか? さらに重要なことに、retry を要求できるようにする回避策はありますか?
これが私が試してきたことの例です:
function initialize() {
require(['socketio', function(io) {
io.connect('http://localhost');
app._bootstrap();
}, function(err) {
console.log(err);
setTimeout(initialize, 10000);
});
}