2017-08-17 54 views
-1

我已經分組了地址。我拿一個,並創建一個請求谷歌API,但我不執行這個請求,我推到下一個Promise.all這個請求的數組。我想「googleMapsClient.directions」不會回覆承諾。 如何使用Promise.all收集並執行所有請求?我該如何promisify谷歌API請求?

urlsPromises.push(
    googleMapsClient.directions({ 
     origin: origin, 
     destination: destination, 
     waypoints: waypoints, 
     optimize: true, 
     mode: 'driving' 
    })); 
}); 
console.log(urlsPromises); 
// return: 
// [ { cancel: [Function], finally: [Function] }, 
// { cancel: [Function], finally: [Function] } ] 

Promise.all(urlsPromises).then(results => { 
    results.forEach((route, index1) => { 
     const tripIndex = index1; 
     console.log('- RESULT'); 
     //result: 
     // - RESULT 
     // [ { cancel: [Function], finally: [Function] }, 
     // { cancel: [Function], finally: [Function] } ] 

回答

0

您可以直接做這樣的事情創建一個Promise對象:

const myPromise = new Promise((resolve, reject) => { 
    // do what you need here 
    if(something) { 
    resolve(someValue) 
    } else { 
    reject(someError) 
    } 
}); 

你甚至可以包裝後完成前處理結果的請求,並resolve/reject

+0

哦,好主意。我會試試這個。 –

+0

太棒了,你讓我的一天! –