2015-03-18 4 views
0

Проблема с паролем Parse Javascript SDK, выполняющим работу с бэкэнд.Parse.Promise.as() не возвращает Promise

У меня есть функция, которая возвращает другое обещание в зависимости от условий. В том случае, когда удовлетворяется ни одно из условий, я хотел бы вернуть «фиктивную» обещание, что ничего не делает:

function myFunction() { 

    if (condition1) 
    return somePromise(); 

    else if (condition2) 
    return someOtherPromise(); 

    else 
    return ??? 
} 

Я попытался возвращение Parse.Promise.as(), но это не помогает, когда ни условие:

E2015-03-18T21:31:50.410Z] v41: Ran job checkup with: 
Input: {} 
Failed with: TypeError: Object false has no method 'then' 
    at jobs/checkup.js:18:73 
    at null.<anonymous> (Parse.js:3:19012) 
    at e (Parse.js:2:6670) 
    at Parse.js:2:7423 
    at g (Parse.js:2:7160) 
    at c.extend.then (Parse.js:2:7408) 
    at Parse.js:3:18989 
    at Array.forEach (native) 
    at Function.x.each.x.forEach (Parse.js:1:661) 
    at Parse.js:3:18966 

Edit: Вот где функция вызывается:

function checkup() { 

    return Parse.Cloud.job("checkup", function(request, status) { 
    var query = new Parse.Query(Parse.User); 
    query.equalTo("active", true); 
    query.each(function(user) { 
     return myFunction().then(function() { 
     return user.save(); 
     }); 

    }).then(function() { 
     status.success('success'); 
    }); 
    }); 
} 
+1

Ошибка подразумевает, что myFunction возвращает false, а вызывающий пытается вызвать then() на нем. Возможно ли, что ваши функции somePromise() или someOtherPromise() фактически возвращают false, а не обещание? Казалось бы, так. Parse.Promise.as(). Then() должен работать нормально. – danh

+0

Можете ли вы опубликовать трассировку стека этого исключения? – Bergi

+0

'return Parse.Promise.as (dummmyresult);' должен быть путь. – Bergi

ответ

1

Возвращение Parse.Promise.as() является со Правильный путь, чтобы следовать, поскольку это решительное обещание.

Ошибка заключается в том, что одно из ваших обещаний возвращает значение bool false. Отслеживайте это, и ваша проблема решена.

Смежные вопросы