我需要一些帮助来调整这段代码。
该任务要求我声明一个名为geoTest()的新函数。 它应该包含一个if / else语句,用于检查导航器.geolocation属性的值。如果该值是真实的,则该函数应调用getCurrentPosition()方法,在成功时运行createMap()函数或在失败时运行fail()函数。如果navigator.geolocation值为falsy,则该函数应调用fail()函数。
- 超时来自另一步。
这是我的代码:
function geoTest() {
var waitForUser = setTimeout(fail, 10000);
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(createMap());
} else {
fail();
}
}
感谢。
答案 0 :(得分:0)
您需要将回调函数传递给getCurrentPosition
。要将函数作为参数传递,请使用函数名称而不使用将括号括起来(括号使其立即调用函数并将返回值传递给函数)。
如果fail()
失败,则说明会致电getCurrentLocation()
,但如果未设置navigator.geolocation
,则表示您正在呼叫getCurrentLocation()
。 function geoTest() {
var waitForUser = setTimeout(fail, 10000);
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(createMap, fail);
}
}
接受第二个回调函数,它将在失败时调用。
.Subscribe()
您的任务几乎与getCurrentPosition
的MDN文档中显示的示例相同。