I guess you have Promise limit timeout error on console or your return has no results. You are using many Promises, WixData is a Promise.
export function suivisColis() {
return wixData.query( “Suivisdecolis” ).find().then((results) => {
**** This return has no return from inner promise .then(). Maybe not necessary. const items = results.items;
for ( let i = 0 ; i < items.length; i++) { *** loop for Promises, async out of control.
wixData.get( “Suivisdecolis” , items[i]._id)
.then((item) => {
item.test = “OK1111” ;
wixData.update( “Suivisdecolis” , item);
});
}
});
}
One possible way is: using async/await.
Read about bulkupdate() to update items (array of objects) in one call.
Debug using log.
I just tried with the following code. Because the goal is for the tracking status to change if the delivery date is equal to today’s date. The code did not work. Can you help me ?
import wixData from 'wix-data';
export async function suivisColis() {
return wixData.query('Suivisdecolis').find().then(async function (results) {
const items = results.items;
for (let i = 0; i < items.length; i++) {
items[i].test = 'test11111111';
if (items[i].etat === '6b6a3595-75b8-4546-9ca0-73ccdc322a37') {
var maintenantLiv = items[i].dateDeLivraison;
var jourLiv = maintenantLiv.getDate();
var moisLiv = maintenantLiv.getMonth() + 1;
var anLiv = maintenantLiv.getFullYear();
var maintenant = new Date();
var jour = maintenant.getDate();
var mois = maintenant.getMonth() + 1;
var an = maintenant.getFullYear();
if (jour === jourLiv & mois === moisLiv & an === anLiv) {
await wixData.get("Suivisdecolis", items[i]._id)
.then(async function (item) {
item.etat = "a7fda939-a6a8-4bf3-a2f8-5d0d04373235";
item.test = "Prêt";
await wixData.update("Suivisdecolis", item);
});
}
}
}
return
});
}
Voilà le problème se situe dans le code ici. J’ai tenté de raccourcir mon code pour voir ou était le problème. Effectivement le problème est dans les variale (var) de mon code. J’aimerais savoir comment faire pour récupérer la date du jour actuelle en format (jour/mois/année) ainsi que celle dans ma base de donnée (datedelivraison) dans le même format (jour/mois/année) et de vérifier si les deux sont égale. Si c’est le cas d’exécuter la requète ?
var maintenantLiv = items[i].dateDeLivraison;
var jourLiv = maintenantLiv.getDate();
var moisLiv = maintenantLiv.getMonth() + 1;
var anLiv = maintenantLiv.getFullYear();
var maintenant = new Date();
var jour = maintenant.getDate();
var mois = maintenant.getMonth() + 1;
var an = maintenant.getFullYear();
if (jour === jourLiv) {
console.log('jour égale');
}
Code I tried to figure out :
import wixData from 'wix-data';
export function suivisColis() {
try {
return wixData.query("Suivisdecolis").find().then((results) => {
const items = results.items;
for (let i = 0; i < items.length; i++) {
if (items[i].etat === '6b6a3595-75b8-4546-9ca0-73ccdc322a37') {
try {
console.log('prêt à livrer');
var maintenantLiv = items[i].dateDeLivraison;
var jourLiv = maintenantLiv.getDate();
var moisLiv = maintenantLiv.getMonth() + 1;
var anLiv = maintenantLiv.getFullYear();
var maintenant = new Date();
var jour = maintenant.getDate();
var mois = maintenant.getMonth() + 1;
var an = maintenant.getFullYear();
if (jour === jourLiv) {
console.log('jour égale');
}
} catch (err) {
console.log(err);
}
wixData.get("Suivisdecolis", items[i]._id)
.then((item) => {
item.test = "Code auto : " + items[i].dateDeLivraison;
wixData.update("Suivisdecolis", item);
});
}
}
});
} catch (err) {
console.log(err);
}
}