2017-10-11 15 views
0

J'utilise Parse backend pour mon application javascript. C'est pour un magasin et le caissier aura besoin de scanner un code QR, puis une liste de produits sur cette carte va charger. Je souhaite charger les informations de chaque produit sur cette carte. Je reçois cela avec des requêtes différentes, puis 1 mainQuery pour les obtenir. Je teste avec 3 produits, maintenant je fais ceci:Parse base de données javascript "OR" requête

var mainQuery = Parse.Query.or(queries[0], queries[1], queries[2]); 

Je mis les requêtes avec une boucle, mais cette ligne au-dessus de moi doit être flexible. Maintenant, c'est juste pour 3 produits. L'idéal serait de faire:

var mainQuery = Parse.Query.or(queries); 

Juste donner toutes les requêtes à la fois ... mais cela ne fonctionne pas .. Y at-il une solution pour que cela fonctionne?

Merci d'avance!

+2

[Function.prototype.apply()] (https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply) – Pointy

+1

Ou avec syntaxe de propagation ES6: 'Parse.Query.or (... requêtes);' – trincot

Répondre

2

Je ne sais pas parse.com du tout, mais de généraliser cela comme un pur javascript répondre à toute fonction qui prend plusieurs paramètres peuvent être appelés avec apply et un tableau

function doSomething(arg1, arg2, arg3){ 
 
    console.log(arg1,arg2,arg3); 
 
} 
 

 
var arr = ["val1","val2","val3"] 
 
doSomething.apply(this, arr);

Ainsi, dans votre question, vous pouvez probablement faire:

var mainQuery = Parse.Query.or.apply(Parse.Query,queries); 

Il y a une façon de le faire en ES6, en utilisant la syntaxe de propagation

var mainQuery = Parse.Query.or(...queries); 
1

Vous pouvez utiliser le ES6 spread syntax encore plus facile:

var mainQuery = Parse.Query.or(...queries);