Angular 回调不返回数据到 Angular promise
Angular Callback not returning data to Angular promise
createQuestionDataAsync 不是 returning 数据。 flQuestion.create 函数调用写入 mongodb 集合的快速服务。问题被写入,值返回并存储在 "data" 中。我无法将其设置为典型的回调 (err,data),因为响应仅返回 return 一个值。也许我需要做出这个承诺?或者我可以通过一些修改保留回调吗?
angular.module('app').factory('flQuestionCrud',function($http, $q, $state, flQuestion ){
return{
createNewQuestion:函数(newQuestionData){
console.log("Before - 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);
您的回调是节点回调方式。 Angular 不使用此类回调。返回值包含存储实际响应的 data
字段。
这假设您使用 $http
createQuestionDataAsync 不是 returning 数据。 flQuestion.create 函数调用写入 mongodb 集合的快速服务。问题被写入,值返回并存储在 "data" 中。我无法将其设置为典型的回调 (err,data),因为响应仅返回 return 一个值。也许我需要做出这个承诺?或者我可以通过一些修改保留回调吗?
angular.module('app').factory('flQuestionCrud',function($http, $q, $state, flQuestion ){ return{ createNewQuestion:函数(newQuestionData){ console.log("Before - 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);
您的回调是节点回调方式。 Angular 不使用此类回调。返回值包含存储实际响应的 data
字段。
这假设您使用 $http