2017-08-17 10 views
-1

私はグループ化されたアドレスを持っています。私は1つを取ってGoogle APIへのリクエストを作成しますが、私はこのリクエストを実行せず、次のPromise.allの配列にプッシュします。私は "googleMapsClient.directions"が約束を返さないと思います。 Promise.allですべてのリクエストを収集して実行する方法は?Googleの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

偉大な、あなたは私の一日を作る! –

関連する問題