Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.javascript > #3106

synchroniser des réponses asynchrones ???

Path csiph.com!1.us.feeder.erje.net!feeder.erje.net!1.eu.feeder.erje.net!news.alphanet.ch!alphanet.ch!.POSTED!not-for-mail
From Une Bévue <unbewusst.sein@fai.invalid>
Newsgroups fr.comp.lang.javascript
Subject synchroniser des réponses asynchrones ???
Date Sun, 16 Apr 2017 08:39:23 +0200
Organization Posted through ALPHANET (http://www.alphanet.ch/)
Lines 35
Sender unbewusstsein@vbo91-4-88-164-253-93.fbx.proxad.net
Message-ID <ocv3is$2fl$1@shakotay.alphanet.ch> (permalink)
NNTP-Posting-Host vbo91-4-88-164-253-93.fbx.proxad.net
Mime-Version 1.0
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding 8bit
X-Trace shakotay.alphanet.ch 1492324764 2549 88.164.253.93 (16 Apr 2017 06:39:24 GMT)
X-Complaints-To usenet@alphanet.ch
NNTP-Posting-Date Sun, 16 Apr 2017 06:39:24 +0000 (UTC)
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
X-Mozilla-News-Host news://news.alphanet.ch:119
Xref csiph.com fr.comp.lang.javascript:3106

Show key headers only | View raw


J'ai une appli qui demande à un serveur websocket des données telles que 
albums, cameras et persons.

les réponses sont asynchrones et les request sont "bêtement" à la 
"queue-leu-leu" (ES6):

     let requestAlbums  = {database: 'photos', collection: 'albums', 
mode: 'read', sort: {startdate: 1, stopdate: 1}};
     this.props.socket.sendRequest(requestAlbums, (message) => {
       this.setState({albums: message.results.albums});
     });
     let requestCameras  = {database: 'photos', collection: 'cameras', 
mode: 'read', sort: {make: 1, model: 1}};
     this.props.socket.sendRequest(requestCameras, (message) => {
       this.setState({cameras: message.results.cameras});
     });
     let requestPersons  = {database: 'photos', collection: 'persons', 
mode: 'read', sort: {lastname: 1, firstname: 1}};
     this.props.socket.sendRequest(requestPersons, (message) => {
       this.setState({persons: message.results.persons});
     });


je voudrais donc n'avoir à faire qu'une seul "this.setState({...})" commun :

this.setState({
     albums:  message.results.albums,
     cameras: message.results.cameras,
     persons: message.results.persons
});

pour cela il faudrait, en quelque sorte, mémoriser les résultats 
'albums' et 'cameras' en attendant que les résultats 'persons' arrivent.

est-ce possible en chaînant des "promises" ?

Back to fr.comp.lang.javascript | Previous | NextNext in thread | Find similar


Thread

synchroniser des réponses asynchrones ??? Une Bévue <unbewusst.sein@fai.invalid> - 2017-04-16 08:39 +0200
  Reésolu ? : synchroniser des réponses asynchrones ??? Une Bévue <unbewusst.sein@fai.invalid> - 2017-04-17 16:07 +0200

csiph-web