【问题标题】:Angular Callback not returning data to Angular promiseAngular Callback 不向 Angular 承诺返回数据
【发布时间】:2016-10-09 12:34:17
【问题描述】:

createQuestionDataAsync 未返回数据。 flQuestion.create 函数调用写入 mongodb 集合的快速服务。问题被写入,值返回并存储在“数据”中。我无法像典型的回调 (err,data) 那样设置它,因为返回的响应只返回一个值。也许我需要做出这个承诺?或者我可以通过一些修改保留回调吗?

angular.module('app').factory('flQuestionCrud',function($http, $q, $state, flQuestion){ 返回 { 创建新问题:函数(新问题数据){ console.log("之前 - flQuestion.create");

        // Question Call Back Function
        function questionCallBack(err, data){
            if (err){
                console.log("flQuestionCrud - Error " + err);
                console.log("flQuestionCrud - Error Statement " + err);
                return null;
                //$state.go('questionCreate');
            }else {
                console.log("flQuestionCrud - Success " + data);
                console.log("flQuestionCrud - Success Statement " + data.statement);
                console.log("flQuestionCrud - Success Question id " + data._id);
                return data;
                //$state.go('questionUpdate');
            }
        }

        // Try/catch
        function createQuestionDataAsync(questionData, cb) {
            console.log("flQuestionCrud - Before Call to create ")
            flQuestion.create(questionData, function(data) {
                console.log("flQuestionCrud - After Call to create ")
                if (!data){
                    return cb("Error Creating Data");
                    //return null;
                }
                try {
                    console.log("flQuestionCrud - Try Section - Success " + data);
                    console.log("flQuestionCrud - Try Section - Success Statement " + data.statement);
                    console.log("flQuestionCrud - Try Section - Success Question id " + data._id);
                }
                catch (err) {
                    return cb("Error Creating Data");
                    //return null;
                }
                return cb(null,data);
                //return data;
            });
        }

        createQuestionDataAsync(newQuestionData,questionCallBack);

【问题讨论】:

    标签: angularjs callback angular-promise


    【解决方案1】:

    您的回调是节点回调样式。 Angular 不使用这种类型的回调。返回值包含存储实际响应的data 字段。

    这假设您使用$http

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-04
      • 2016-02-21
      • 2019-04-21
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 2017-02-21
      • 1970-01-01
      相关资源
      最近更新 更多