我有一個使用Monaca和AngularJS構建的跨平臺應用程序。 該應用使用允許用戶拍照的Camera插件。從回調中返回多個值
A有一個功能,可以拍攝照片,在該功能中,我想在成功拍攝照片時返回幾個值。
下面是我調用takePicture()函數並嘗試訪問返回值的方法。下面的兩個函數也是從不同的控制器/服務中調用的。
控制器
// Take photo
$scope.takePicture = function() {
var test = Photo.takePicture();
alert("photoCaptured: " + test.photoCaptured + "\nphotoName" + test.photoName); // Error here
};
下面是takePicture()函數觸發該照相機和在的onSuccess回調
服務
// Get the main app.js module
var photo = angular.module("photo", []);
photo.service("Photo", function() {
var myFunctions = {
// Take picture
takePicture: function() {
var onSuccess = function (imageURI) {
var photoCaptured, photoName;
return { photoCaptured: true, photoName: imageURI } // Should return multiple values
}
var onFail = function (error) {
alert("AN ERROR HAS OCCURED" + "\nPhoto capture failed." + error);
}
var options = { quality: 50, destinationType: Camera.DestinationType.FILE_URI};
navigator.camera.getPicture(onSuccess, onFail, options);
},
}
return myFunctions;
});
返回值
但是,測試拋出錯誤無法讀取未定義的屬性'photoCaptured'。
如何訪問從onSuccess回調返回的值?
可能重複[如何從異步調用返回響應?](https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-致電) – Andreas
查看您問題的重複問題。順便說一句,這段代碼沒有意義'var photoCaptured,photoName; return {photoCaptured:true,photoName:imageURI}'你要創建一個對象,那些是屬性名稱,而不是變量 – quirimmo