2017-04-12 6 views
0

私はSails.jsを使い慣れていないので、sail.jsを使って新しいアプリケーションを開発しようとしています。このアプリケーションでは、できるだけ早くPOST要求に応答したいペイロードを使用して多数のタスクを非同期的に処理します。理想的には、私はペイロード上で実行し、アクション内でそれらをすべて非同期で連鎖させたいタスクの各ステップごとにヘルパーを持っています。私はドキュメントを徘徊しており、これを行う方法を見つけることができないようです。Sails.js 1.0 helpers promisingとしてチェーン化

この問題に近づけるには正しい方法ですか(どうすれば私をドキュメントに導くことができますか)またはこの問題を処理する別の方法がありますか?

ありがとうございます。

答えて

0

サービスメソッドを約束として設定し、早期に解決してください。たとえば、これを達成するためにbluebirdをインポートできます。お使いのコントローラで :

myPostEndpoint: (req, res) => { 
    return MyProcessorService.initProcessing(req.body).then(res.json); 
} 

そして、あなたのサービスMyProcessorServiceに:

var Promise = import('bluebird'); 
//... other init code 

module.exports = { 
    initProcessing: data => { 
    //do some validation... 
    // then just resolve and continue 
    Promise.resolve({ status: 'processing'}); 

    return MyProcessorService.step1(data) 
     .then(MyProcessorService.step2) 
     .then(MyProcessorService.step3)//and so on.... 
    }, 
    step1: dataFromInit => { 
    //do stuff and resolve for step2 
    }, 
    step2: dataFromStep1 => { 
    //do stuff and resolve for step3 
    }, 
    step3: dataFromStep2 => { 
    //do stuff and resolve 
    }, 
    //and so on 
} 

あなたはまたにジョブをオフに送信するBullRedisようなものでワーカーキューを設定でき、WorkerServiceで実行したり、別のワーカーアプリ。

関連する問題