den Beispielcode zum Betrachten:eine Funktion mit Standardparametern aufrufen, die auch einen Rückruf hat
function makeRequest(endpoint, form = {}, qs = {}, callback) {
const exampleObject = {
endpoint,
form,
qs,
};
callback(exampleObject);
}
makeRequest('/example', { foo: 'string' }, { bar: 'string' }, (exampleObject) => {
console.log(exampleObject);
});
Im obigen Beispiel würde das folgende Objekt auf der Konsole protokolliert werden:
{ endpoint: '/example',
form: { foo: 'string' },
qs: { bar: 'string' } }
Wie kann ich Verwenden Sie die Standardeinstellungen in makeRequest
und nutzen Sie immer noch den Rückruf? Zum Beispiel schlägt die folgende:
makeRequest('/example', (exampleObject) => {
console.log(exampleObject);
});
Ausgang:
/Users/daniel/example.js:13
callback(exampleObject);
^
TypeError: callback is not a function
at makeRequest (example.js:7:3)
at Object.<anonymous> (example.js:10:1)
at Module._compile (module.js:409:26)
at loader (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:148:5)
at Object.require.extensions.(anonymous function) [as .js] (/usr/local/lib/node_modules/babel-cli/node_modules/babel-register/lib/node.js:158:7)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at /usr/local/lib/node_modules/babel-cli/lib/_babel-node.js:160:24
at Object.<anonymous> (/usr/local/lib/node_modules/babel-cli/lib/_babel-node.js:161:7)
Dies macht Sinn, in Anbetracht sende ich nur ein Parameter. Ich frage mich, wie ich makeRequest
unter Ausnutzung der Standardparameter aufrufen und immer noch den Rückruf erhalten kann. Muss ich immer drei Parameter übergeben, wenn ein Callback existiert? Gibt es eine andere Möglichkeit, dies zu tun, so habe ich die Option, nur die 2. und 3. Parameter bei Bedarf zu verwenden und immer im Rückruf zu bekommen?
nicht Rückrufe verwenden. Rückgabeversprechen. – Bergi