首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Parse.Promise在创建之后没有运行

Parse.Promise在创建之后没有运行
EN

Stack Overflow用户
提问于 2014-07-31 07:30:59
回答 1查看 51关注 0票数 1

基本上,我在这里要做的是在matchCenterComparisonPromise大于0的情况下,将eBayResults.length创建为Parse中的承诺。console.log('amil eh');被注销了,所以我知道它确实大于0。

然而,matchCenterComparisonPromise似乎没有运行,尽管后来我给return matchCenterComparisonPromise;打了电话。我不是把那个返回调用放在正确的位置,还是我犯了一个不同的错误,导致它没有运行?

代码语言:javascript
运行
复制
function matchCenterComparison(eBayResults) {   

  console.log('eBayResults are the following:' + eBayResults);

  if (eBayResults.length > 0) {
      console.log('amil eh');

    var matchCenterComparisonPromise = new Parse.Promise(function(){
    console.log('yes the ebay results be longer than 0');

    //Query users MComparisonArray with these criteria  
    var mComparisonArray = Parse.Object.extend("MComparisonArray");
    var mComparisonQuery = new Parse.Query(mComparisonArray);
    mComparisonQuery.contains('Name', 'MatchCenter');
    //mComparisonQuery.contains("MCItems", eBayResults);

    console.log('setup query criteria, about to run it');

    mComparisonQuery.find({
      success: function(results) {
      console.log('MatchCenter comparison results :' + results);
      // No new items                      
      if (results.length > 0) {
        console.log("No new items, you're good to go!");
      }
      // New items found
      else if (results.length === 0) {
        console.log('no matching mComparisonArray, lets push some new shit');
        //replace MCItems array with contents of eBayResults
        Parse.Object.destroyAll(mComparisonArray);

        var newMComparisonArray = new mComparisonArray();
        newMComparisonArray.set('Name', 'MatchCenter');
        newMComparisonArray.set('MCItems', eBayResults);
        //newMComparisonArray.set("parent", Parse.User());

        console.log('yala han save il hagat');
        // Save updated MComparisonArray  
        newMComparisonArray.save().then({
        success: function() {
          console.log('MComparisonArray successfully created!');
          //status.success('MComparisonArray successfully created!');
        },
        error: function() {
          console.log('nah no MComparisonArray saving for you bro:' + error);
          //status.error('Request failed');
        }
        });
        //send push notification

      }
      console.log('MatchCenter Comparison Success!');
      },

      error: function(error) {
      console.log('nah no results for you bro:' + error);
      }
    });
    });

      return matchCenterComparisonPromise;

  }       
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-31 23:57:00

我不确定你能不能做出这样的承诺(至少我从未见过这样的承诺)。

我所做的就是创建一个承诺,然后从其他代码中引用它:

代码语言:javascript
运行
复制
var myPromise = new Parse.Promise();

if (someExpression) {
    // do some work, possibly async
    myPromise.resolve(output);
} else {
    myPromise.reject({ message: 'No work done, expression failed' });
}
return myPromise;

这是基本模式,根据需要进行扩展。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25053143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档