繁体   English   中英

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

[英]javascript how to get function return value out of argument function

听起来像一个基本的问题,但我坚持使用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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM