2017-02-25 152 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/)** –