gpt4 book ai didi

javascript如何从参数函数中获取函数返回值

转载 作者:行者123 更新时间:2023-11-30 12:49:10 24 4
gpt4 key购买 nike

听起来像是一个基本问题,但我对 javascript 变量作用域感到困惑。我想获取作为参数传递给另一个函数的函数值。

例子:全局变量 number1 始终返回初始值 ' ',而不是 get 函数的第二个参数的值。

怎么了?

    var number1 = '';
cordova.require("applicationPreferences").get("NumTel",function (value) {
number1 = value;
},
function (error) {}
);
console.log("Number1 = " + number1);

最佳答案

因为您至少有一个异步操作,所以您无法从该函数中获取该值,因为在您的 console.log() 语句已经执行很久之后,该函数将在未来的某个时间被调用执行。

在异步编程中,您必须在回调中使用value,或者您必须从回调中调用另一个函数并将value 传递给它。要在javascript中使用异步编程,你必须改变你的设计思维。您不能只使用同步技术,因为代码流不再是同步的。

将所有想要使用该值的逻辑移动到回调本身。

cordova.require("applicationPreferences")
.get("NumTel", function (value) {
// put all your code here that uses value
// or call another function and pass the value to it
myFunc(value);
}, function (error) {
}
);

function myFunc(x) {
console.log("Number1 = " + x);
}

或者,你甚至可以在没有像这样的匿名函数的情况下做到这一点:

cordova.require("applicationPreferences")
.get("NumTel", myFunc, function (error) {
}
);

function myFunc(x) {
console.log("Number1 = " + x);
}

关于javascript如何从参数函数中获取函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21571473/

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