gpt4 book ai didi

javascript - Promisifying API 回调 - 如何正确解决或拒绝

转载 作者:行者123 更新时间:2023-11-29 18:03:51 25 4
gpt4 key购买 nike

我读过类似的帖子,但没有一个能很好地说明如何正确地做到这一点。

我理解 Promises 以及它们通常是如何创建的,成功和失败的监听器等待被触发以解决或拒绝。

我不明白的是,当我调用一个将成功和失败回调作为参数的 API 方法时,我如何确定触发了哪个回调,然后我才能拥有它解决还是拒绝?

例如,使用此 Web API 并考虑它提供的 navigator.geolocation.getCurrentPosition 方法:

var options = {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
};

function success(pos) {
var crd = pos.coords;

console.log('Your current position is:');
console.log('Latitude : ' + crd.latitude);
console.log('Longitude: ' + crd.longitude);
console.log('More or less ' + crd.accuracy + ' meters.');
};

function error(err) {
console.warn('ERROR(' + err.code + '): ' + err.message);
};

navigator.geolocation.getCurrentPosition(success, error, options);

当 API 发回成功或错误时,它会调用我给它的回调之一,但我不知道它会调用哪一个来解决或拒绝它。

那么问题来了:监听哪个回调被触发的正确方法是什么?它如何看待 ES6 promise 这种 API 调用的结果?

最佳答案

类似的东西:

function getCurrentPositon(options){
return new Promise(function(resolve, reject){
navigator.geolocation.getCurrentPosition(resolve, reject, options);
});
}

不知道调用了哪一个,相反,您对两个选项都做出了响应 - 如果失败则拒绝,如果成功则执行。

关于javascript - Promisifying API 回调 - 如何正确解决或拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32893871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com