React native 拒绝承诺

React native 拒绝承诺,react-native,promise,React Native,Promise,我基本上是想把React原生GPS功能包装成一个承诺。 当我到达navigator.geolocation.getCurrentPosition的失败回调时,我想手动拒绝一个承诺 以下是相关代码: var p = new Promise(); navigator.geolocation.getCurrentPosition( (position) => { ... all good here ... }, (error) => { // try

我基本上是想把React原生GPS功能包装成一个承诺。 当我到达navigator.geolocation.getCurrentPosition的失败回调时,我想手动拒绝一个承诺

以下是相关代码:

var p = new Promise();

navigator.geolocation.getCurrentPosition(
     (position) => { ... all good here ... },
     (error) => {
         // trying to reject manually a Promise
         p.reject(error);
     }
);
问题:

  • 如果我没有在Promise参数中传递任何函数,我会在第一行得到
    而不是一个函数
    错误
  • 如果我传递了一个函数,我得到的
    undefined不是一个计算p.reject的函数

  • 我把承诺和迟延的承诺混淆了

    一种可行的方法是将GPS功能包装成如下承诺:

    return new Promise(function(resolve, reject) {
       navigator.geolocation.getCurrentPosition(
          (position) => {
             resolve('All good');
          },
          (error) => {
             reject(error);
          }
       );
    });
    

    Promission将简化-可能像
    navigator.geolocation.getCurrentPositionAsync=()=>新承诺(navigator.geolocation.getCurrentPosition.bind(navigator.geolocation))一样简单