bonjour,
je me fais une extension avec un background script, et une popup.
l'extension utilise "localbase.js" qui permet une gestion des indexedDB plus simple

la popup veut recuperer un recapitulatif des clients pour cela, elle fait browser.runtime.sendMessage({action: 'getClientsRecap'}, ({data}) => { console.log(data); });.

le background quant a lui fait : function getClientsRecap(request, sender, sendResponse) { sendResponse({data: 'ok'}); })=> ceci fonctionne

cependant, lorsque j'inclu la requete dans l'indexedDB, j'ai le fameux message "The message port closed before a response was received."
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
db.collection('clients').get().then(clients => {
        const recapClients = [];
        clients.forEach(client => {
            recapClients.push({
                id: client.id,
                name: `${client.personLastName} ${client.personFirstName}`
            });
        });
        sendResponse({data: recapClients});
    });
j'ai tout essaye :
une simple promesse : ca fonctionne
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
return new Promise(resolve => {
       resolve();
    }).then(() => {
        sendResponse({data: 'ok'});
    });
l'acces en DB dans une promesse, ca fonctionne pas
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
return new Promise(resolve => {
        db.collection('clients').get().then(clients => {
            const recapClients = [];
            clients.forEach(client => {
                recapClients.push({
                    id: client.id,
                    name: `${client.personLastName} ${client.personFirstName}`
                });
            });
            resolve(recapClients);
        });
    }).then(recapClients => {
        sendResponse({data: recapClients});
    });
j'avoue etre un peu perplexe... je ne comprends pas ce qui se passe
ps : la lib en question est celle-ci : https://github.com/dannyconnell/localbase

pss: quand je fais des console.log du retour DB (dans le background), j'ai bien ma data