函数内部的异步函数

var a=(function(){

  setTimeOut(()=>'data',1000)
   

})()

怎么样才能

a() // 'data'

var z=function(){
  var promise=new  Promise(function(sus,err){setTimeout(()=>{
    this.f='data'
sus()

  },1000)})

return promise
}

var l=new z()
l.then(function () {
  console.log(this.f)
})

...自己弄出来了

阅读 1.8k
2 个回答

题主你的setTimeout写错了...

var a=(function(){
  setTimeout(()=>console.log('data'),1000)
})()

Async/Await写法,算是函数内部的异步函数吧

function resolveAfter1Second(x) {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve(x);
    }, 1000);
  });
}


async function dataShow(x) {
  const a = await resolveAfter1Second(x);
  return a;
}

dataShow("data").then(v => {
  console.log(v);
});

Promise或者async函数,直接通过执行函数获取异步返回值是不行的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题