问题描述
我对Node还是很陌生,实际上并没有真正理解执行异步操作的想法,而是传递了一个应该在操作完成时执行的功能。但是我正在努力。但是现在我想调用一个返回数据库记录的函数。我正在使用MysqL2
模块,并将此代码包含在类定义中。
#retrieve_record() {
db.execute(
`SELECT * FROM ${this.table_name} WHERE id = ?`,[this.id],(error,results,fields) => {
if (error) throw error;
const result = results[0];
this.created_at = result.created_at;
this.modified_at = result.modified_at;
}
)
}
当执行内部函数的最后一行时,对象将处于我想要的状态,但是很可能,当#retrieve_record
将控制权返回给调用者时,该对象将不会处于该状态。呼叫者(到目前为止)看起来像这样:
get created_at() {
if (this.created_at) return this.created_at;
this.#retrieve_record();
return this.created_at;
}
但是我不认为这会如我所愿。那么如何告诉#retrieve_record
在内部函数执行完毕之前不将控制权交还给调用者?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)