首页 > 解决方案 > 在返回值之前在函数内部添加超时函数

问题描述

此代码工作正常,但我需要在返回 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 
}

标签: javascript

解决方案


你需要使用 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
}

推荐阅读