我正在尝试习惯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功能?
答案 0 :(得分:4)
您需要返回函数的结果,以便传递承诺。
.then(function(savedProgData) {
return getSavedData(savedProgData)
})