2017-10-11 1 views
0

Ich benutze Parse Backend für meine Javascript-Anwendung. Es ist für einen Laden und der Kassierer muss einen QR-Code scannen, dann wird eine Liste von Produkten auf dieser Karte geladen. Ich möchte die Informationen von jedem Produkt auf dieser Karte laden. Ich bekomme das mit verschiedenen Abfragen und dann 1 mainQuery, um sie zu bekommen. Ich teste mit 3 Produkte, jetzt habe ich das tue:Parse Datenbank Javascript "OR" Abfrage

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

stelle ich die Abfragen mit einer for-Schleife, aber diese Linie über mir muss flexibel sein. Jetzt ist es nur für 3 Produkte. Die ideale Sache zu tun wäre:

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

einfach alle Anfragen auf einmal zu geben ... aber das funktioniert nicht .. Gibt es eine Lösung dieses zur Arbeit zu kommen?

Vielen Dank im Voraus!

+2

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

+1

Oder mit ES6 Spreadsyntax: 'Parse.Query.or (... Abfragen);' – trincot

Antwort

2

Ich weiß nicht, parse.com überhaupt, aber dies als reine Javascript zu verallgemeinern jede Funktion beantworten, die mit apply und ein Array

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

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

Sogenannte können mehrere Parameter verwendet werden, in Ihrer Frage können Sie wahrscheinlich tun dies:

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

Es gibt eine noch einfachere Möglichkeit, dies in ES6 zu tun, um die Syntax Ausbreitung mit

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