gpt4 book ai didi

javascript - 将 promise 值返回给 angular.extend() 中的变量

转载 作者:行者123 更新时间:2023-12-03 07:33:32 24 4
gpt4 key购买 nike

在下面的示例中,如何将 myVar 设置为从异步服务方法返回的值

angular.extend(this, {
myVar: (function() {
getVal();
})()
});

function getVal() {
var d = $q.defer();
MyFactory.Get()
.then(function (resp) {
d.resolve(resp.data);
});
return d.promise; // myVar should equal resp.data
};

我认为我对 promise /延期缺乏理解,所以建议会很好。

最佳答案

由于 myVar 是一个变量,您可以从 Controller 中的任何位置设置它。在初始化中,您可以将其分配给后备值或将其设置为未定义。并在异步调用成功后进行设置。

angular.extend(vm, {
myVar: 'fallback'
});

或者:

angular.extend(vm, {
});

然后:在 Controller 中:

getVar();
function getVar() {
getVal().then(function(data){
vm.myVar = data;
});
}

function getVal() {
var d = $q.defer();
MyFactory.Get()
.then(function (resp) {
d.resolve(resp.data);
});
return d.promise; // myVar should equal resp.data
};

或者更有效:

getVal();

function getVal() {
MyFactory.Get()
.then(function (resp) {
vm.myVar = resp.data;
});
};

this 更改为 vm,以消除与 this 关键字可能引发的冲突。

关于javascript - 将 promise 值返回给 angular.extend() 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35715980/

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