Ich weiß, Callback-Hölle ist schlecht, aber ich kann dieses Problem in Typoskript nicht lösen. wenn ich eine kategorie entfernen möchte:wie Callbackhölle in Maschinenschrift zu löschen
erst überprüfen sie die kategorie existiert zweitens überprüfen sie die kategorie hat eltern?
wenn Update Kategorie der Eltern Kinderkollektion hat
schließlich Rückrufnachricht an den Client an die Steuerung senden.
kann mir jemand helfen? hier ist meine Methode Code:
removeCategory(catId: string, callback: (error: any, result: any) => void) {
var msg = {
"message": "",
"statescode": 200,
"error": null
};
console.log("find category");
if (catId) {
super.findById(catId, (getError: any, getEntity: any) => {
if (getError) {
msg.message = "can't find this item: " + catId;
msg.statescode = 404;
msg.error = getError;
callback(msg, null);
} else {
console.log("find category");
super.remove(catId, (delError: any, delEntity: any) => {
if (delError) {
msg.message = "something wrong with remove this category: " + getEntity.name;
msg.statescode = 400;
msg.error = delError;
callback(msg, null);
}
else {
if (getEntity.parent) {
var parentId = getEntity.parent;
super.update(parentId, { $pull: { childrens: getEntity._id } }, (putError: any, putEntity: any) => {
if (putError) {
msg.message = "can't update this item:" + item.name;
msg.statescode = 500;
msg.error = putError;
callback(msg, null);
}
else {
callback(null, getEntity);
}
});
} else {
callback(null, getEntity);
}
}
});
}
});
}
else {
msg.message = "entityId can't be empty!";
msg.statescode = 400;
callback(msg, null)
}
}
Dank für Ihre Hilfe, ich denke, das wird mir helfen: http://www.summa.com/blog/avoiding-callback-hell-while-using-mongoose –