我正在努力让parse.com使用解析云API来实现新的承诺〜我的意思是。可悲的是,我遇到了一些麻烦 - 我找不到任何关于如何使其工作的真正讨论(api似乎都是谎言或无能)
这是我的代码:
query.find(
function(results){
if (results.length > 0){
return results[0].get("id");
} else {
response.error("Nothing found. Sod this.");
}
},
function(error){
response.error("ServerDown");
}
).then(
function(moduleId){
//do anything here, i don't know, increment module? Who cares!
},
function(error){
console.log("error");
}
);
无论出于何种原因,此代码都无效
我收到错误:
{"代码":141,"错误":" TypeError:无法调用方法'然后'未定义\ n在getModuleIdIfAny(main.js:71:4)\ n在main.js:50:2"}
指向).then(
如果你能提供答案,我的笔记本电脑会爱你,否则它必须迅速发展翅膀。
答案 0 :(得分:6)
这里有一些有用的代码。
exports.lookupXByID = function (object)
// Must fulfill with an error when this lookup fails
// Sucessful returns must return X
{
console.log("lookupXByID.entry");
var X = Parse.Object.extend("X");
var query = new Parse.Query(X);
console.log("lookupXByID.query(" + object.id + ")");
query.equalTo("objectId", object.id);
var promise0 = query.first();
var promise1 = promise0.then(
function(result) {
console.log("lookupXByID.promise0.success");
if (typeof result === "undefined") {
return utilMod.promiseerror(10004, "No matching X ID");
} else {
// We have a match
return result;
};
}
);
console.log("lookupXByID.exit");
return promise1;
};
我不确定你的失败原因。此代码有效并且非常有用,因为通过ID检索对象的标准调用不会返回promise。我以这种方式命名我的承诺并使用你看到的日志记录语句,以便我可以跟踪日志中的执行情况。我已经成长为真正的承诺,甚至创建了一个与iOS一起使用的Objective-C版本。
祝你好运。-Bob
答案 1 :(得分:1)
原来?我使用的是旧版本的解析库。
要获取最新版本go here
它在“javascript”下〜嗯,除此之外,真的。
要实际使用最新版本,请转到path_to_parse / config / global.json
在条目中
"global": {
"parseVersion": "put_the_value_you_want_here"
}