Ten kod działa dobrze, ale muszę dodać coś w funkcji limitu czasu przed powrotem w FirstFunction ()

function LastFunction(){    
    var answer = firstFunction();   
    console.log(answer) 
}

function firstFunction() {
    //Do something;  
    return somevalue 
}

Jak dodać funkcję limitu czasu funkcji przed zwartością wartości?

function firstFunction() {
    setTimeout (function(){
       var something = "something here"
    },1000)
    return something 
}
1
Hunter 22 listopad 2020, 22:56

1 odpowiedź

Najlepsza odpowiedź

Musisz użyć obietnic. Twój kod wewnątrz setTimeout zostanie opóźniony, ale wszystko poza tym będzie działać synchronicznie.

function LastFunction(){    
  firstFunction().then(function(val) {
    console.log(val) 
    return val
  })
}

function firstFunction() {
  var promise = new Promise(function(resolve, reject) {
    setTimeout(function(){
        var something = "something here"
        resolve(something)
    },1000)
  })
  return promise
}
3
Matthew Moran 22 listopad 2020, 20:05