2017-05-02 24 views
0

我想要习惯承诺。 My Parse Server环境总是返回一个promise,但是我需要将Parse函数与一些我自己的函数混合使用,我希望按照Parse的方式工作。在NodeJS中使用承诺(解析服务器)

这里是我的代码

savePrescription(user, prescription) 
    //Returning an object (working!) to be passed to the next function. 
     .then(function(savedProgData) { 
      console.log(savedProgData) <-- undefined! 
      getSavedData(savedProgData) 
     }) 
     .then(function(savedIds) { 
      console.log(savedIds); <-- undefined! 
      sendClientProgrammes(savedIds) 
     }) 
     .then(function(returnedData) { 
      console.log(returnedData); 
      response.success(); 
     }, function(err) { 
      response.error(err); 
     }) 

    function sendClientProgrammes(savedIds) { 
     console.log('running send client programmes'); 
     return new Promise(function(resolve, reject) { 
      return resolve(); 
     }) 
    } 

    function getSavedData(savedProgData) { 
     console.log('running getSavedData'); 
     return new Promise(function(resolve, reject) { 
      var savedIds = []; 
       for(var i = 0; i < savedProgData.length; i++) { 
        savedIds.push(savedProgData[i].id) 
       } 
       if(savedIds.length > 0) { 
        console.log(true); 
        return resolve(savedIds); 
       } else { 
        reject(); 
       } 
     }) 
    } 

在这我得到一个错误{code: 107, message: "The server returned an invalid response."}结束。

我怎样才能 'promisfy' 我的标准JS功能?

回答

3

你需要这样的承诺会传递到返回你的函数的结果。

.then(function(savedProgData) { 
    return getSavedData(savedProgData) 
}) 
+0

好了的作品!可恶!! – Taylorsuk