私はイベントリスナーを持っています。イベントリスナーは、特定のタスクが完了するたびに(サーバーから)イベントを受け取ります。私は、それぞれのタスクを約束してカプセル化することを望んでいますので、複雑な順序付けされたワークフローをきれいに構築することができます。集中リスナーから個々の約束をどのように解決するのですか?
グローバルなリスナーから(idで)各タスクの約束をどのように解決するのですか? ここに私が達成しようとしているものの概念例があります。
// 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??
}
});
のように、これを使用します。 – Bergi