我知道问题是执行的顺序,范围触发异步并在处理完其余代码后加载数据。我有一个httpGET,它从Web服务获取信息,当用户点击Facebook共享按钮时,它在我的Facebook共享功能中。但是我尝试在httpget中添加一个手表和.then以及返回承诺,但我都无法开始工作。
所以我的想法如下:我有一个用户在Facebook上共享的CDImage,我有另一个目录,其中包含同一张CD的促销图片,而不是全部,所以httpGET检查如果promoteCDid存在,是否存在应使用CDPromotionalURL更新变量CDImage,而不是从CDImage获取标准URL,以便用户共享Promotional图像而不是默认CD封面。
到目前为止,问题是CDImage没有直接更改,并且console.log(CDImage)第一次显示CDCover,当您在几秒钟后单击按钮时CDImage显示CDPRomotionURL图像。
var CDPromotionalImageUrl = "EMPTY";
$('#facebookshare').click(function () {
$scope.GetCDdata = function () {
$http({
method: 'Get',
url: "/GetCDPromotionImage?id_CD=" + promotionCDId,
})
.success(function (data, status, headers, config) {
$scope.CDdata = data;
CDPromotionalImage = $scope.CDdata[0].filename
$scope.CDPromotionalImageUrl = "https://website.com/" + CDPromotionalImage
})
.error(function (data, status, headers, config) {
$scope.message = 'Unexpected Error';
});
};
if (CDPromotionalImageUrl == "EMPTY") {
CDImage = CDImage;
} else {
CDImage = CDPromotionalImageUrl;
}
console.log(CDImage)
var $this = $(this);
var urlShare = (window.location.href);
var obj = {
method: 'share',
href: (urlShare),
picture: (CDImage),
title: 'The ' + CDName,
caption: "As heard on website.com",
description:(description)
};
function callback(response) {
//alert("Post ID: " + response['post_id']);
}
FB.ui(obj, callback);
});
$scope.GetCDdata();