繁体   English   中英

Angular.js $ q不退还承诺

[英]Angularjs $q is Not Returning Promise

我正在尝试在Angularjs中调用服务方法。 服务方法被称为好方法,但是它不会向控制器中调用它的函数返回任何值。

如果有人可以帮助我,我将非常高兴。 这是我的代码波纹管。

  logosStreams.factory("processPaypal", ['$http', '$timeout', '$q',   '$state',function($http, $timeout, $q, $state){
  var transCall = {};
  var transcallPromise2 = $q.defer();   

  return {

    onSuccesfulPayment: function(payment) {
      console.log("payment success: " + JSON.stringify(payment, null, 4));
 transcallPromise2.resolve(payment);
    },
    onAuthorizationCallback: function(authorization) {
      console.log("authorization: " + JSON.stringify(authorization, null, 4));
      //return authorization;
    },
    createPayment: function(data) {
      // for simplicity use predefined amount
      var paymentDetails = new PayPalPaymentDetails("0", "0", "0");
      var payment = new PayPalPayment(data.amt, "USD", data.name, "Sale",
        paymentDetails);
      return payment;
    },

    buyInFutureBtn : function(e) {
        // future payment
        PayPalMobile.renderFuturePaymentUI(this.onAuthorizationCallback, this.onUserCanceled);
    },

    profileSharingBtn : function(e) {
        // profile sharing
        PayPalMobile.renderProfileSharingUI(["profile", "email", "phone","address", "futurepayments", "paypalattributes"],
         this.onAuthorizationCallback, this.onUserCanceled);
    },

    buyNowBtn : function(data) {

        // single payment
        PayPalMobile.renderSinglePaymentUI(this.createPayment(data), this.onSuccesfulPayment, this.onUserCanceled);
        return transcallPromise2.promise;

    },

    onPrepareRender: function() {

    },

    onUserCanceled: function(result) {
      console.log(result);
              transcallPromise2.reject(result);

    }

}

}])

在控制器内部调用buyNowBtn方法

  processPaypal.buyNowBtn($scope.MMParams).then(function(response){
            console.log(response);
  })

不返回值的可能原因之一是您的诺言没有得到解决。 仅当您调用onSuccessfulPayment()时,您的承诺才会得到解决。 您还可以将代码放在执行onSuccessfulPayment()函数的位置吗?

您已在buyNow函数执行过程中返回了promise对象...尝试将promise作为返回对象的一部分返回,在该对象中您已返回所有函数连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM