Hallo in der unten stehenden Funktion, wenn ich die Protokolldatei drucken, konnte ich die Nachrichten in der folgenden Reihenfolge angezeigt, obwohl Versprechen für synchrone Kommunikation verwendet wird.Problem mit nodejs Promise-Sequenz
angezeigt Sequenz -
a) "vor Aufruf" b "nach dem Aufruf" c) "inside save" d) "keine Probleme"
Was bekommen kann ich im Code ändern die Reihenfolge der Protokolle als unten-
a) "vor dem Aufruf" b) "nach dem Aufruf" c) "ohne Probleme" d) "inside Speicher"
Controller-Code -
module.exports.updateLocalTransportVendorDtls = function (req, res) {
var transportSchema = new transportModel();
new Promise(function (resolve, reject) {
checkForNewVehicleType(req, function (doc) {
resolve(doc)
})
})
.then(function (doc) {
var updateJustServiceDtls = doc.split(/\|/)[2];
var updateVehicle = doc.split(/\|/)[0];
var addVehicle = doc.split(/\|/)[1];
if (updateJustServiceDtls == 'true') { /* To update service details for the same vendor */
console.log("before call")
updateJustServiceDetailsOnly(req, res)
console.log("after call")
}
}).then(function() {
console.log("inside save")
transportSchema.save(function (error) {
if (error) {
return res.status(500).json({ "Message": error.message.trim() });
}
else {
return res.json({ "Message": "Data got inserted successfully in local_transport_details collection" });
}
})
}).catch(function (err) {
return res.json({ "Message": err.message });
});
}
Funktion Call-
var updateJustServiceDetailsOnly = function (req, res) {
var promise = new Promise(function (resolve, reject) {
//code to update db
console.log("no issues")
resolve();
});
})
return promise;
}