gpt4 book ai didi

javascript - 在继续之前等待函数执行

转载 作者:行者123 更新时间:2023-11-30 08:31:40 24 4
gpt4 key购买 nike

我是 promises 的新手,但我正在尝试让一个函数(返回一个数字)在继续之前执行。我尝试了以下方法,但均无效:

var whatNumber = function(){
var defer = $q.defer();
myNumber.get().then(defer.resolve);
return defer.promise;
}

我也试过:

var whatNumber = function(){
var defer = $q.defer();
defer.resolve( myNumber.get());
return defer.promise;
}

最后我没有 promise 地尝试了一下:

var whatNumber = function(){
myNumber.get().then(function(result) {
return result;
});
}

有人知道我做错了什么吗?

最佳答案

你应该阅读 deffered antipattern在您的情况下,您可以从函数中 return myNumber.get(); :

var whatNumber = function(){
return myNumber.get();
}

或者,如果您需要从结果中返回特定属性:

var whatNumber = function(){
return myNumber.get().then(function(result) {
return result.data;
});
}

如果你想使用反模式方法(你应该避免),那么你需要解析 promise 并传递参数:

var whatNumber = function(){
var defer = $q.defer();
myNumber.get().then(function(result) {
defer.resolve(result);
});
return defer.promise;
}

whatNumber().then(function(result) {
console.log(result);
});

关于javascript - 在继续之前等待函数执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37036941/

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