Ich habe diese multiple Funktion namens checkForURLS
, die zwei weitere Funktionen aufruft, die Rückrufe zurückgeben, wie kann ich das Array hinzufügen, sobald beide Rückrufe zurückgegeben haben und dann das Array als Rückruf zurückgeben? Ich arbeite mit reinem JavaScript.Mehrere Callback-Antworten zum Array hinzufügen
function checkForURLs(uniqueURL, customURL, callback) {
var errors = [];
checkForUniqueURL(uniqueURL, function(UniqueURLCallback) {
if (UniqueURLCallback===true) {
errors.push("This unique URL is already taken, please try another.");
}
});
if (customURL.length>0) {
checkForCustomURL(customURL, function(customURLCallback) {
if (customURLCallback===true) {
errors.push("This custom URL is already taken, please try another.");
}
});
}
if (errors.length>0) {
return callback(errors);
} else {
return callback(false);
}
}
Ihr Code arbeiten sollte. Sie rufen '' 'checkForURLs (urlA, urlB, function (error) {/ * behandeln Ihren Fehler in der Callback-Funktion * /});' ''. Ist das nicht, was du willst? Was willst du? – Dario
Es scheint, leer zurück zu kommen, aber wenn ich einen Callback in einen der inneren Callbacks, um den Rückruf (Fehler) zurückgeben, funktioniert es aber nur für diesen bestimmten Rückruf. Was passiert, ist, dass die if-Anweisung nicht wartet und einfach sofort zurückkehrt. Mit jQuery hätte ich etwas wie 'done' verwendet und wäre dann aber nicht sicher wie man es in JavaScript machen würde. –
klingt wie 'checkForUniqueURL()' tut etwas asynchron und all dies sollte mit Versprechungen getan werden. Zeigen Sie alle relevanten Code – charlietfl