29
loading...
This website collects cookies to deliver better user experience
class Node {
constructor(val){
this.val = val
this.next = null
}
}
export default class Queue{
constructor(){
this.first = null
this.last = null
this.length = 0
}
enqueue(val){
node = new Node(val)
this.length++
if(this.length === 1){
this.first = node
this.last = node
}
else{
this.last.next = node
this.last = node
}
return this
}
dequeue(){
if(this.length === 0) return undefined
this.length--
temp = this.first
if(this.length === 0) this.last = null
this.first = temp.next
return temp.val
}
}
const recipes = new Queue()
useEffect(()=>{
findRecipe(setNext)
findRecipe(setRecipe, setLoading)
for(let i=0;i<5;i++){
findRecipe((obj)=>recipes.enqueue(obj))
}
},[])
useEffect(() =>{
setNext(recipes.dequeue())
findRecipe((obj)=>recipes.enqueue(obj))
},[recipe])