承诺 API 回调 - 如何正确解决或拒绝

Promisifying API callbacks - How to properly resolve or reject

我读过类似的帖子,但是 none 很想知道如何正确地做到这一点。

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

我不明白的是,当我调用一个将成功和失败回调作为参数的API方法时- 我如何确定哪个回调正在被触发,所以我可以解决或拒绝它?

例如这个网站 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 承诺这种 API 调用的结果?

类似的东西:

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

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