如何异步定义javascript对象属性

时间:2017-06-20 14:06:22

标签: javascript object asynchronous

有人可以帮助我异步定义对象属性吗?我的示例下面返回`name:undefined,我找不到任何关于如何同步执行此操作的策略...

function returnName () {
    setTimeout(function() { 
    return 'John Wick'
  }, 3000);
}

const person = {
    name: returnName(),
  age: 23
}

console.log(person) // person.name returns `undefined`

提前致谢!

1 个答案:

答案 0 :(得分:0)

您是否能够使用类似Promise之类的内容,只有在名称从函数person解析后才能设置/记录returnName()的名称,无论是setTimeout()还是Promise或者是异步数据库调用? .then()会为您提供一种简单有效的方法,可以在异步方法完成后仅执行操作,并为您提供通过.catch()function returnName() { return new Promise(function(resolve, reject) { setTimeout(function() { return resolve('John Wick'); }, 3000); }); } let person = { age: 23 }; returnName().then(function(name) { person.name = name; console.log(person); }); 处理成功和错误的选项。

ServerSocket socket = new ServerSocket(port);
in=new DataInputStream(socket.accept().getInputStream());

byte[] b = new byte[8];
in.read(b);

这是展示功能的jsfiddle

希望这有帮助!