Firebase og('未找到驱动程序') this.loadingCtrl.Disclose(); 解析('未找到驱动程序') } }
因此,当您获得了最初的驱动程序列表时,您就可以启动它,然后每次驱动程序拒绝时,它都会检查是否还有其他驱动程序,然后调用自己:Firebase og('未找到驱动程序') this.loadingCtrl.Disclose(); 解析('未找到驱动程序') } },firebase,firebase-realtime-database,ionic4,Firebase,Firebase Realtime Database,Ionic4,因此,当您获得了最初的驱动程序列表时,您就可以启动它,然后每次驱动程序拒绝时,它都会检查是否还有其他驱动程序,然后调用自己: // ASK NEXT DRIVER if(i < sortedDriversAray.length) { this.askNextDriver(sortedDriversAray, i++); }
// ASK NEXT DRIVER
if(i < sortedDriversAray.length) {
this.askNextDriver(sortedDriversAray, i++);
}
// END ASK NEXT DRIVER
//询问下一个驱动程序
如果(i
askNextDriver(sortedDriversAray, i) {
console.log('handling driver: '+sortedDriversAray[i].id);
// while(inProgress);
// inProgress = true;
if(sortedDriversAray[i].availability === true && this.rejecters.indexOf(sortedDriversAray[i]) <= -1 && sortedDriversAray[i].request == undefined){
console.log('driver '+sortedDriversAray[i].id + ' is available and hasnt rejected,sending request')
this.driversRef.child(`${sortedDriversAray[i].id}`).update({ request: request }).then(()=>{
// watch driver and update changes
this.driversRef.child(`${sortedDriversAray[i].id}`).on("value",response=>{
let driverResponse = response.val().request
if(driverResponse == undefined){
console.log('driver '+sortedDriversAray[i].id+' just rejected,adding him to array');
this.rejecters.push(sortedDriversAray[i].id);
console.log(this.rejecters);
// ASK NEXT DRIVER
if(i < sortedDriversAray.length) {
this.askNextDriver(sortedDriversAray, i++);
}
// END ASK NEXT DRIVER
// inProgress = false;
}else if(driverResponse.accepted == true){
console.log('yay! driver '+sortedDriversAray[i].id+' just accepted');
// this.trackDriver(closestDriver.id)
// resolve(true)
}
})
})
}else{
console.log('no drivers found')
this.loadingCtrl.dismiss();
resolve('no driver found')
}
}
// ASK NEXT DRIVER
if(i < sortedDriversAray.length) {
this.askNextDriver(sortedDriversAray, i++);
}
// END ASK NEXT DRIVER