gpt4 book ai didi

javascript - 返回声明不等待 promise

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

我有一项服务。假设这返回字符串“B”。我有以下 Controller :

$scope.output;
var someVariable = 'A';

$scope.setUpConnection = function (someVariable) {
$scope.output = createConnection(someVariable);
console.log($scope.output);
}

createConnection = function (someVariable) {
var result;
service.connect(someVariable).then(function success(response) {
result = response.data;
}, function error(response) {
result = 'Error' + response;
});
return result;
}

createConnection() 函数跳转到函数末尾,不等待 .then,不返回任何内容,因此返回 undefined。有人可以解释为什么它不等待 promise 完成吗?

如果我用直接返回代替,服务不是问题

$scope.output = response.data;

效果很好。问题和它这样设置的原因是,一旦我开始移动它,createConnection() 函数最终将在一个单独的 JS 文件中发生,因此上面的解决方案将不起作用。因此我想我需要 return 语句。

最佳答案

这不会起作用,因为在您返回结果时, promise 尚未解决。你必须在 setUpConnection

中解开 promise
$scope.setUpConnection = function (someVariable) { 
service.connect(someVariable).then(function success(response) {
$scope.output = response.data;
}, function error(response) {
$scope.output = 'Error' + response;
});
}

关于javascript - 返回声明不等待 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45503939/

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