gpt4 book ai didi

javascript - 在 Parse 云代码中使用自己的 promise

转载 作者:可可西里 更新时间:2023-11-01 01:26:32 24 4
gpt4 key购买 nike

我想保存一个在 Parse 云代码中随机生成的 registrationId,所以我需要检查该值是否已经在数据库中,我必须以递归方式执行此操作,直到获得正确的字符串。到目前为止,这是我尝试过的方法,问题是 findRegistrationId() 不是一个 promise ,所以我不能使用 then() 有没有办法让它成为一个 promise 或任何其他解决方法?对于云代码

function getRandomString()

{
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
var string_length = 4;
var randomstring = '';

for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum,rnum + 1);
}
return randomstring;
}
function findRegistrationId()
{
console.log("Enter findRegistrationId")
var randomString = getRandomString();
var query = new Parse.Query("Book");

query.equalTo("registrationId", randomString);

query.find.then(function(results){
if(results.length === 0)
{
console.log("no registrationId duplicated")
return randomString;
}
//if there is other registrationId we concatenate
else
{
console.log("registrationId duplicated let's recursive it")
return findRegistrationId();
}
},function(error){
return error;
})

}

// Use Parse.Cloud.define to define as many cloud functions as you want.
// Gets the unique cool BC identificator. The real glue of BC!
Parse.Cloud.define("GetBookId", function(request, response) {

var promise = findRegistrationId();

promise.then(function(result){

console.log("success promise!!")
response.success(result);

}, function(error){
console.error("Promise Error: " + error.message);

response.error(error);

});


});

最佳答案

你可以这样写你的函数:

function findRegistrationId()
{
console.log("Enter findRegistrationId")
var randomString = getRandomString();
var query = new Parse.Query("Book").equalTo("registrationId", randomString);

var promise = new Parse.Promise();

query.find().then(function(results) {
if (results.length == 0)
{
promise.resolve(randomString);
}
else
{
findRegistrationId().then(function(result) {
promise.resolve(result);
}, function(error) {
promise.reject(error);
});
}
}, function(error) {
promise.reject(error);
});

return promise;
}

关于javascript - 在 Parse 云代码中使用自己的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18229041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com