有人可以帮助我异步定义对象属性吗?我的示例下面返回`name:undefined,我找不到任何关于如何同步执行此操作的策略...
function returnName () {
setTimeout(function() {
return 'John Wick'
}, 3000);
}
const person = {
name: returnName(),
age: 23
}
console.log(person) // person.name returns `undefined`
提前致谢!
答案 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。
希望这有帮助!