pagekit / vue-resource

The HTTP client for Vue.js
MIT License
10.09k stars 1.6k forks source link

Question: Handle stream response? #517

Open eklem opened 7 years ago

eklem commented 7 years ago

Hi, I'm using vue-resource to query a search server that takes JSON as input (GET), and previously returned an array of JSON objects back, but that has changed. Now it returns JSON objects in a stream.

I guess the json() method for handling the response won't work any more, but could text()or blob() work? And then I would have to handle the stream of objects myself.

eklem commented 7 years ago

Ok, a little too quick to ask the question, sorry!

I get stuff back in response.body, so then I can handle it myself. I do a regex to find the JSON object strings, parse them, and push to an array.

eklem commented 7 years ago

Reopening this, since Firefox doesn't work on this issue. The response I get back is:

{"id":"1480675828636-1203","scoringCriteria":[{"tf":[{"gte":"*○eple","lte":"*○eple","tf":315,"setLength":315}],"df":{"*○eple":1},"tfidf":{"*○eple":94.82444863415408},"boost":0,"score":94.82444863415408}],"score":94.82444863415408,"document":{"Varenummer":9476905,"Varenavn":"Delorme Crémant de Bourgogne Rosé Brut","Volum":1.5,"Pris":369.9,"Literpris":246.6,"Varetype":"Musserende vin, rosé","Farge":"Lys rød.","Lukt":"Friske bær.","Smak":"Aroma av eple, jordbær, bringebær og rips.","Land":"Frankrike","Underdistrikt":"Bourgogne","Argang":null,"Rastoff":"Pinot Noir 100%","Alkohol":12}}
{"id":"1480675827608-1111","scoringCriteria":[{"tf":[{"gte":"*○eple","lte":"*○eple","tf":315,"setLength":315}],"df":{"*○eple":1},"tfidf":{"*○eple":94.82444863415408},"boost":0,"score":94.82444863415408}],"score":94.82444863415408,"document":{"Varenummer":1181201,"Varenavn":"Bottega Pink Gold","Volum":0.75,"Pris":209,"Literpris":278.67,"Varetype":"Musserende vin, rosé","Farge":"Lys rosa.","Lukt":"Aroma preget av lyse røde bær, eple, sitrus og svale urter.","Smak":"Frisk og kremet, preg av røde bær, sitrus og urter, ettersmak med hint av bittert.","Land":"Italia","Underdistrikt":null,"Argang":null,"Rastoff":"Pinot Noir 100%","Alkohol":11.5}}
{"id":"1480675827608-1104","scoringCriteria":[{"tf":[{"gte":"*○eple","lte":"*○eple","tf":315,"setLength":315}],"df":{"*○eple":1},"tfidf":{"*○eple":94.82444863415408},"boost":0,"score":94.82444863415408}],"score":94.82444863415408,"document":{"Varenummer":837501,"Varenavn":"Le Rive Spumante Rosé Extra Dry","Volum":0.75,"Pris":181.9,"Literpris":242.5,"Varetype":"Musserende vin, rosé","Farge":"Kobber, gammelrosa.","Lukt":"Intens, ferskentre, ville jordbær, grønt eple.","Smak":"Frisk.","Land":"Italia","Underdistrikt":"Øvrige","Argang":2014,"Rastoff":"Glera 80%, Raboso 20%","Alkohol":11}}
{"id":"1480675827333-1079","scoringCriteria":[{"tf":[{"gte":"*○eple","lte":"*○eple","tf":315,"setLength":315}],"df":{"*○eple":1},"tfidf":{"*○eple":94.82444863415408},"boost":0,"score":94.82444863415408}],"score":94.82444863415408,"document":{"Varenummer":9787101,"Varenavn":"Equilibri Natural Funambul Brut Nature","Volum":0.75,"Pris":150,"Literpris":200,"Varetype":"Musserende vin","Farge":"Klar, lys gul med gylne reflekser.","Lukt":"Frisk. Sitrus, fersken, eple og mineraler.","Smak":"Lett og frisk. Kremet mousse, blomster, sitrus og fersken. Mineralsk snert.","Land":"Spania","Underdistrikt":null,"Argang":2009,"Rastoff":"Xarel·lo 50%, Macabeo 25%, Parellada 25%","Alkohol":11.5}}
{"id":"1480675827333-1077","scoringCriteria":[{"tf":[{"gte":"*○eple","lte":"*○eple","tf":315,"setLength":315}],"df":{"*○eple":1},"tfidf":{"*○eple":94.82444863415408},"boost":0,"score":94.82444863415408}],"score":94.82444863415408,"document":{"Varenummer":9766301,"Varenavn":"Corte Giara Treviso Prosecco 2015","Volum":0.75,"Pris":145,"Literpris":193.3,"Varetype":"Musserende vin","Farge":"Lys strågul.","Lukt":"Friske aromaer av eple, pære, aprikos og sitrus.","Smak":"Fruktig, velbalansert med behagelig sitruspreg og god lengde.","Land":"Italia","Underdistrikt":null,"Argang":2015,"Rastoff":"Glera 100%","Alkohol":11}}
{"id":"1480675827333-1072","scoringCriteria":[{"tf":[{"gte":"*○eple","lte":"*○eple","tf":315,"setLength":315}],"df":{"*○eple":1},"tfidf":{"*○eple":94.82444863415408},"boost":0,"score":94.82444863415408}],"score":94.82444863415408,"document":{"Varenummer":9701005,"Varenavn":"Pizzolato Prosecco Brut","Volum":1.5,"Pris":299.9,"Literpris":199.9,"Varetype":"Musserende vin","Farge":"Lys grønngul.","Lukt":"Aroma med preg av eple og sitrus.","Smak":"Livlig, lett sitrus- og eplepreget stil.","Land":"Italia","Underdistrikt":null,"Argang":null,"Rastoff":"Glera 100%","Alkohol":11}}
{"id":"1480675827204-1071","scoringCriteria":[{"tf":[{"gte":"*○eple","lte":"*○eple","tf":315,"setLength":315}],"df":{"*○eple":1},"tfidf":{"*○eple":94.82444863415408},"boost":0,"score":94.82444863415408}],"score":94.82444863415408,"document":{"Varenummer":9701001,"Varenavn":"Pizzolato Prosecco Brut","Volum":0.75,"Pris":136.9,"Literpris":182.5,"Varetype":"Musserende vin","Farge":"Lys grønngul.","Lukt":"Aroma med preg av eple og sitrus.","Smak":"Livlig, lett sitrus- og eplepreget stil.","Land":"Italia","Underdistrikt":null,"Argang":null,"Rastoff":"Glera","Alkohol":11}}
{"id":"1480675825511-843","scoringCriteria":[{"tf":[{"gte":"*○eple","lte":"*○eple","tf":315,"setLength":315}],"df":{"*○eple":1},"tfidf":{"*○eple":94.82444863415408},"boost":0,"score":94.82444863415408}],"score":94.82444863415408,"document":{"Varenummer":3749101,"Varenavn":"Selvaggio Graffiti Prosecco","Volum":0.75,"Pris":119,"Literpris":158.7,"Varetype":"Musserende vin","Farge":"Gul med grønnskjær.","Lukt":"Grønne epler og grapefrukt.","Smak":"Friskt. Eple med hint av grapefrukt.","Land":"Italia","Underdistrikt":"Øvrige","Argang":null,"Rastoff":"Glera 100%","Alkohol":11}}
{"id":"1480675825302-815","scoringCriteria":[{"tf":[{"gte":"*○eple","lte":"*○eple","tf":315,"setLength":315}],"df":{"*○eple":1},"tfidf":{"*○eple":94.82444863415408},"boost":0,"score":94.82444863415408}],"score":94.82444863415408,"document":{"Varenummer":3540601,"Varenavn":"La Linea Prosecco Extra Dry","Volum":0.75,"Pris":139.9,"Literpris":186.5,"Varetype":"Musserende vin","Farge":"Lys gyllen.","Lukt":"Fruktdreven med epler og sitrus.","Smak":"Frisk, balansert med eple, sitrus og tropisk frukt.","Land":"Italia","Underdistrikt":"Øvrige","Argang":null,"Rastoff":"Glera 100%","Alkohol":11}}
{"id":"1480675825302-814","scoringCriteria":[{"tf":[{"gte":"*○eple","lte":"*○eple","tf":315,"setLength":315}],"df":{"*○eple":1},"tfidf":{"*○eple":94.82444863415408},"boost":0,"score":94.82444863415408}],"score":94.82444863415408,"document":{"Varenummer":3525501,"Varenavn":"Veuve Du Vernay Ice","Volum":0.75,"Pris":109,"Literpris":145.3,"Varetype":"Musserende vin","Farge":"Gyllen gul.","Lukt":"Eple, sitrus og tropiske frukter.","Smak":"Sitrus og frisk fruktsmak.","Land":"Frankrike","Underdistrikt":null,"Argang":null,"Rastoff":"Ugni Blanc 40%, Chenin Blanc 40%, Folle Blanche 20%","Alkohol":11}}

Any good pointers on how to (for Firefox also) get each line as objects in an array?