在NodeJS中使用Promise(解析服务器)

时间:2017-05-02 18:35:43

标签: javascript node.js

我正在尝试习惯Promises。我的Parse Server环境总是返回一个promise,但是我需要将Parse函数与我想要按照Parse方式工作的一些自己的函数混合使用。

这是我的代码

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."}错误。

我如何'满足'我的标准JS功能?

1 个答案:

答案 0 :(得分:4)

您需要返回函数的结果,以便传递承诺。

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