延迟时间个人cordova插件

时间:2014-11-20 03:48:39

标签: javascript cordova cordova-plugins

我目前正在为cordova实现一个插件。现在,我只是从相机获取角度并将其值返回到javascript。一切正常,我得到了正确的价值观。 但是我的方法“getAngles”中存在延迟时间问题以获得角度。

在此代码中,例如,显示的第一个警告表示:“水平:0,垂直:0”(代码中的第二个警报),此后是警告“水平:62.2,垂直:39.4”(第一个警告,在“getAngles”方法中)

你知道问题出在哪里吗?有没有办法避免这种延迟时间?

(我只想将角度值直接存储在“水平”和“垂直”变量中)

(也许在Android代码中有什么可做的?现在这个插件只在android上可用)

horizontal = 0;
vertical = 0;

function alertCameraAngles() {
    helloWorld.getAngles(function(result) {
        horizontal = result.horizontalAngle;
        vertical = result.verticalAngle;

        alert("horizontal: " + horizontal + "\nvertical: " + vertical);
    }, function(error) {
        alert("error");
    });

    alert("horizontal: " + horizontal + ", vertical: " + vertical);
}

1 个答案:

答案 0 :(得分:1)

你无法避免这种延迟,因为javascript是异步的。当你调用getAngles时,你的插件正在越过原生端,检索一些数据等,并在回调中返回结果(应该如此)。同时,js代码继续运行(不阻止自己的执行)并执行第二个警报。相反,这既不是错误也不是坏行为,这正是它应该如何表现的。