2017-02-25 135 views
2

我基本上试图将React Native GPS功能包装到Promise中。 当我到达navigator.geolocation.getCurrentPosition的故障回调时,我想手动拒绝Promise。反应原生手动拒绝承诺

这里的相关代码:

var p = new Promise(); 

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

问题:

  1. 如果我不传递任何函数的参数无极我得到的第一行not a function错误
  2. 如果我通过我得到的函数undefined is not a function evaluating p.reject

回答

3

我很困惑临带着一种类似于推迟的承诺。

的工作方式是包装GPS功能成无极像这样:

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

Promisification将简化 - 说不定那样简单'navigator.geolocation.getCurrentPositionAsync =()=>新无极(navigator.geolocation .getCurrentPosition.bind(navigator.geolocation));' –

+0

其实是的,** [demo](https://jsfiddle.net/kk6nyLh6/)** –