Ich habe einen Ereignis-Listener, der das Ereignis (vom Server) erhält, wenn eine bestimmte Aufgabe erledigt ist. Ich möchte, dass jede Aufgabe in ein Versprechen eingebettet wird, damit ich komplexe geordnete Arbeitsabläufe auf eine saubere Art und Weise konstruieren kann.Wie löse ich einzelne Versprechen von einem zentralisierten Listener aus?
Wie würde ich jedes Aufgabenversprechen (nach ID) von einem globalen Listener lösen? Hier ist ein konzeptionelles Beispiel für das, was ich erreichen möchte.
// list of all tasks
var tasks = {}
tasks['id-1'] = getTask('id-1')
tasks['id-2'] = getTask('id-2')
// do task in order
// each task will issue request to server, and wait for reply
tasks['id-1'].startPromise()
.then(function(result) {
// start second task from first task's data
return tasks['id-2'].startPromise(result);
})
.then(function() {
// finalized task works
return true;
});
// listen to task finish
client.listen('onReceive', function(event) {
if(event.is('taskFinished')) {
var id = event.taskId;
tasks[id].resolve(event.result); //How do I resolve task from listener??
}
});
Ich sehe nicht, was das mit Polling zu tun hat. – Bergi