Angular Callback不会将数据返回给Angular承诺

时间:2016-06-09 02:58:35

标签: angularjs callback angular-promise

createQuestionDataAsync不返回数据。 flQuestion.create函数调用写入mongodb集合的快速服务。写下问题并将值返回并存储在" data"中。我无法将其设置为典型的回调(错误,数据),因为响应仅返回一个值。也许我需要做出这个承诺?或者我可以通过一些修改来保留回调吗?

angular.module(' app')。factory(' flQuestionCrud',函数($ http,$ q,$ state,flQuestion){     返回{         createNewQuestion:function(newQuestionData){             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);

1 个答案:

答案 0 :(得分:0)

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

这假定您使用$http