Ich habe viel darüber gelesen, wie man ein Array als Funktionsparameter für verschiedene Rückgabewerte übergeben kann. Aber es funktioniert nicht, wenn ich drei js-Datei habe.JavaScript: Wie behandelt man ein Array als Funktionsparameter?
main.js
module.exports = function(){
this.deliver = require('./file1.js');
this.start = require('./file2.js');
}
file1.js
module.exports = function(id){
require('./main.js')();
function deliver(id){
console.log('Does deliver() work?:'+id);
var arr = new Array(2);
arr[0] = 'content 1';
arr[1] = 'content 2';
return arr;
}
}
file2.js
require('./main.js')();
start.apply(null, deliver('yes'));
function start(x, y){
console.log('x: '+x);
console.log('y: '+y);
}
Haben Sie eine Idee haben, warum ist definiert deliver nicht?
@Jose, danke. Ja, das ist der ganze Code. Wenn alles in einer Datei ist, funktioniert es. Aber nicht in drei Dateien ...
@Quentin, danke. Hast du eine Idee wie ich es mit drei Dateien machen könnte? -> Ich versuche eine Aufgabe von Datei2 nach Datei1 auszulagern, weil ich sie auch für andere Aufgaben brauche. Am Ende brauche ich das Ergebnis von Datei1 zurück in Datei2, um damit zu arbeiten. In meinem Beispiel habe ich das Outsourcing weggelassen.
Danke für Ihren Hinweis, Qentin. Ich habe den obigen Code aktualisiert. deliver (x) enthält jetzt einen Parameter, den ich gerne wieder in file2.js bekommen würde. Es kommt bereits Datei1 an, kommt aber nicht zurück.
Ich bin immer noch auf der Suche nach einer Lösung. Ich habe verstanden, wie man Daten von Datei2 zu Datei1 übergibt (oder umgekehrt).
main.js
module.exports = function(){
this.file1 = require('./file1.js');
this.file2 = require('./file2.js');
}
file1.js
require('./main.js')();
//file2.receive('yes', 'content 1');
module.exports = {
deliver : function(id){
console.log('Does deliver() work?:'+id);
return file2.receive(id, 'content 1');
}
}
file2.js
require('./main.js')();
file1.deliver('yes');
module.exports = {
receive : function(x, y){
console.log('x: '+x);
console.log('y: '+y);
}
}
I file2 beginnen und Daten übergeben Datei1 wenn „file2.receive zurückkehren (ID, 'Inhalt 1'); " ist ausgeblendet. Ich kann auch mit file1 beginnen und Daten an file2 übergeben, solange "file1deliver ('yes');" ist ausgeblendet. Warum arbeiten Sie nicht beide gleichzeitig?
Ist das der ganze Code für file2.js? –
"BTW, das folgende funktioniert auch nicht" - Natürlich nicht. 'deliver' ist immer noch außerhalb des Geltungsbereichs. – Quentin
Ja, meine Schuld. Meine Programmierkenntnisse sind langsam, selbst beim Verständnis Ihrer Punkte. – NewbieXXL