gpt4 book ai didi

javascript - 如何使用 subscribe 从函数返回值?

转载 作者:行者123 更新时间:2023-12-02 22:59:37 25 4
gpt4 key购买 nike

这是 Javascript 中的一个函数,我需要通过订阅来检查 Angular 服务是否包含数组,但返回值未定义,因为该函数不会更改订阅内的变量值。

    function checkAvailableBonus() {
var dataSize = 0;
var returnValue = "false";
window.angularComponentRef.component.slotsBonusesService.getPlayerAvailableBonuses().subscribe(function (data) {
dataSize = data.length;
if (dataSize !== 0) {
returnValue = "true";
} else {
returnValue = "false";
}

});
return (returnValue);
}
checkAvailableBonus();

我除了订阅完成后返回“true”/“false”的函数之外。

最佳答案

您的函数安装一个回调(subscribe(function (data) 位),然后立即返回 returnValue,而无需等待回调执行,因此您'将始终返回“false”

相反,请使用 Promise :

function checkAvailableBonus() {
return new Promise(resolve => {
window.angularComponentRef.component.slotsBonusesService.getPlayerAvailableBonuses().subscribe(function (data) {
const dataSize = data.length;
if (dataSize !== 0) {
resolve("true");
} else {
resolve("false");
}

});
});
}
checkAvailableBonus().then(result => console.log(result));

关于javascript - 如何使用 subscribe 从函数返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57840490/

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