Lösen der zirkulären Abhängigkeit im Knoten mithilfe von requirejs

Ich habe schon viele Vorschläge ausprobiert, die ich für die zirkuläre Abhängigkeit in node und requirejs gegoogelt habe. Leider bringe ich es nicht zum Laufen. Der Versuch, der für eine Lösung geschlossen ist (glaube ich), ist unten:

// run.js
var requirejs = require('requirejs');

requirejs.config({
  baseUrl: __dirname,
  nodeRequire: require
});

requirejs(['A'], function(A) {
  var a = new A.Go();
  console.log(a.toon())
});


// A.js
define(['B', 'exports'], function(B, exports) {

  exports.Go = function() {
    var b = new require('B').Ho();
    var toon = function() {
      return 'me tarzan';
    }; 

    return {
      b: b,
      toon: toon
    }
  };
});


// B.js
define(['A', 'exports'], function(A, exports) {

  exports.Ho = function() {
    var a = new require('A').Go();
    var show = function() {
      return 'you jane';
    }

    return {
      a: a,
      show: show
    }
  };
});

Das Ausführen dieses Codes in Node führt zu einem RangeError: Die maximale Größe des Aufrufstapels wurde überschritten. Wir entfernen die Abhängigkeit von B aus A.js und geben 'me tarzan' zurück

Jeder Vorschlag wird geschätzt!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage