geoTest 函数 - 创建 if/else 语句
Posted
技术标签:
【中文标题】geoTest 函数 - 创建 if/else 语句【英文标题】:geoTest function - creating an if/else statement 【发布时间】: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();
谢谢。
【问题讨论】:
【参考方案1】:您需要将回调函数传递给getCurrentPosition
。要将函数作为参数传递,请使用函数名称不在其后放置括号(括号使其立即调用函数并将返回值传递给函数)。
说明说如果getCurrentLocation()
失败则调用fail()
,但您在navigator.geolocation
未设置时调用它。 getCurrentLocation()
有第二个回调函数,失败时会调用。
function geoTest()
var waitForUser = setTimeout(fail, 10000);
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(createMap, fail);
您的任务与 getCurrentPosition
的 MDN 文档中显示的示例几乎相同。
【讨论】:
以上是关于geoTest 函数 - 创建 if/else 语句的主要内容,如果未能解决你的问题,请参考以下文章