2016-10-31 6 views
0

私は.try(function(){}).catch(function(){})ブロックで約束を返そうとしています。
私の問題は私の約束のタイプによって引き起こされます。エラーが言うBluebird <void>は返信文でBluebird <ProcessInstance>に割り当てられません

deleteProcess(processId: number): Promise<ProcessInstance> { 
    let deletedProcess = this.Process.findById(processId); 

    return Promise 
     .try(function() { 
      this.Process.destroy({ 
       where: { 
        processId: processId 
       } 
      }) 
       .then(function (rowDeleted) { 
        if (rowDeleted === 1) { 
         console.log('Deleted successfully'); 
         return this.getDeletedProcess(); 
        } 
       }) 
       .catch(function (err) { 
        console.log(err); 
       }) 
     }); 

    function getDeletedProcess(): ProcessInstance { 
     return this.deletedProcess; 
    }; 
}; 

、そのタイプ「ブルーバードのボイド」は「ブルーバードのProcessInstance」が

+0

このコードサンプルの構文を作成してください最初は有効です。 – Tomalak

+0

コードを変更しました – venter

答えて

0

この投稿は問題に

Bluebird.JS Promise: new Promise(function (resolve, reject){}) vs Promise.try(function(){})

この解きを解決するために本当に便利でした型に代入ではありません問題:

return new Promise<ProcessInstance>(
     (function (resolve, reject) { 
      this.Process.destroy({ 
       where: { 
        processId: processId 
       } 
      }) 
       .then(function (rowDeleted) { 
        if (rowDeleted === 1) { 
         console.log('Deleted successfully'); 
         return this.getDeletedProcess(); 
        } 
       }) 
       reject(function (err) { 
        console.log(err); 
       }) 
     }) 
     ) 
関連する問題