javascript - 在返回值之前在函数内部添加超时函数
问题描述
此代码工作正常,但我需要在返回 firstFunction() 之前在超时函数中添加一些内容
function LastFunction(){
var answer = firstFunction();
console.log(answer)
}
function firstFunction() {
//Do something;
return somevalue
}
如何在返回值之前在函数内部添加超时函数?
function firstFunction() {
setTimeout (function(){
var something = "something here"
},1000)
return something
}
解决方案
你需要使用 Promises。您的内部代码setTimeout
将被延迟,但外部的所有内容将继续同步运行。
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
}