gpt4 book ai didi

javascript - 返回对象时以下未定义

转载 作者:行者123 更新时间:2023-11-28 20:05:37 25 4
gpt4 key购买 nike

我有一个这样的函数:

1:  var object = get_resource($scope, CbgenRestangular, $stateParams.scheme_id);
2: console.log(object)

哪个运行这个:

get_resource = function ($scope, CbgenRestangular, id){
CbgenRestangular.one('scheme', id).get().then(function(object){
console.log(object)
return object
})
},

我的问题是,在 get_resource 函数 console.log 中返回完美的对象,但是上面代码中的第 2 行它是 undefined,为什么?

这应该与get_resource函数中的对象相同,为什么当我返回它时它是未定义的。

最佳答案

函数 get_resource 没有 return 语句,因此结果是 undefined 也就不足为奇了。您在函数内确实有一个 return 语句,您将其传递给 then 函数,但这不会从“外部”函数返回。

你在这里处理的是 promise 。 get 函数显然返回一个 promise :

var promise = CbgenRestangular.one('scheme', id).get();

要获取该 Promise 的结果,您可以使用 then 函数,就像在 get_resource 函数中所做的那样。

现在,如果您想在此函数之外处理该 Promise,您可以简单地返回该 Promise,然后执行相同的操作:

get_resource = function ($scope, CbgenRestangular, id){
return CbgenRestangular.one('scheme', id).get().then(function(object){
console.log(object)
return object
})
},

//.....

var promise = get_resource($scope, CbgenRestangular, $stateParams.scheme_id);
promise.then(function (object) {
console.log(object);
});

关于javascript - 返回对象时以下未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20882544/

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