gpt4 book ai didi

javascript - 无法使用 $q 和 Promise

转载 作者:行者123 更新时间:2023-12-02 23:54:00 25 4
gpt4 key购买 nike

我想使用变量 StatusASof 在 inserthtml 函数中显示数据,如下所示。

App.controller("SS_Ctrl", function ($scope, $http, $location, $window, $sce, $q) {

var ShiftDetails = [];

function getMAStatusASof(Id) {
var defer = $q.defer();
$http({
method: 'GET',
url: 'http://xx/api/Sxxx/GetMAStatusASof',
params: { Id: Id }
}).then(function successCallback(response) {
StatusASof = response.data;
alert("getMAStatusASof : " + StatusASof); --> Got data from API here in this alert.
defer.resolve(response);
}, function errorCallback(response) {});
}

function insertHtml(dates, ShiftDetails, Id) {

// var promise = getMAStatusASof(Id); promise.then(

var defer = $q.defer();
getMAStatusASof(Id);
alert(StatusASof); --> alert says empty here
defer.resolve();
var Content;
Content = '<table class="clsTable"> <tr> <td rowspan="2">Cases ' + $scope.StatusASof + ' </td> <td rowspan="2">Total</td> ';
for (var i = 0; i <= 6; i++) {
if (i == daySeq - 1) {
Content = Content + '<td colspan="3" style="background-color:red"> {{dates[ ' + i + ']}} </td> ';
}
}
}

但是显示结果时 $scope.StatusASof 未定义。看起来 $q.defer 不适合我。

仅从 getMAStatusASof(Id); 获取数据后如何继续执行代码?

有人可以帮忙吗?

最佳答案

更新

你需要返回 defer.promise;

  function getMAStatusASof(Id) {
var defer = $q.defer();
$http({
method: 'GET',
url: 'http://xx/api/Sxxx/GetMAStatusASof',
params: { Id: Id }
}).then(function successCallback(response) {
StatusASof = response.data;
alert("getMAStatusASof : " + StatusASof); --> Got data from API here in this alert.
defer.resolve(StatusASof);
}, function errorCallback(response) {
deferred.reject(false);
});
return defer.promise;
}

您可以使用此功能,例如:

getMAStatusASof(Id).then(function(res){
if(res){
$scope.StatusASof = res;
}
})

关于javascript - 无法使用 $q 和 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55489908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com