【问题标题】:geoTest function - creating an if/else statementgeoTest 函数 - 创建 if/else 语句
【发布时间】:2016-05-08 04:41:32
【问题描述】:

我需要一些帮助来调整此代码。

任务要求我声明一个名为 geoTest() 的新函数。 它应该包含一个 if/else 语句来检查 navigator .geolocation 属性的值。如果值是真的,该函数应该调用 getCurrentPosition() 方法,成功时运行 createMap() 函数或失败时运行 fail() 函数。如果 navigator.geolocation 的值是假的,该函数应该调用 fail() 函数。

-超时来自另一个步骤。

这是我的代码:

function geoTest() {
    var waitForUser = setTimeout(fail, 10000);
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(createMap());
    } else {
        fail();
    }
}

谢谢。

【问题讨论】:

    标签: javascript if-statement


    【解决方案1】:

    您需要将回调函数传递给getCurrentPosition。要将函数作为参数传递,请使用函数名称在其后放置括号(括号使其立即调用函数并将返回值传递给函数)。

    说明说如果getCurrentLocation() 失败则调用fail(),但您在navigator.geolocation 未设置时调用它。 getCurrentLocation() 有第二个回调函数,失败时会调用。

    function geoTest() {
        var waitForUser = setTimeout(fail, 10000);
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(createMap, fail);
        }
    }
    

    您的任务与 getCurrentPosition 的 MDN 文档中显示的示例几乎相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 2021-05-30
      • 2019-04-09
      • 2016-10-13
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多