我有我需要遵循严格的JavaScript API的命名方案,它看起来像这样:返回对象调用函数里面回调
var Items = function() {
this.items = [];
};
Items.prototype.get() {
db.items.find(function(err, items) {
this.items = items;
});
return this.items;
}
的问题是异步调用(db.items.find ..)在没有时间的get之前完成()方法返回一个空this.items ..
客户需要做出这样的呼吁:
items = new Items();
console.log(items.get());
什么是处理异步调用的最佳实践他重新按照API命名方案仍然严格?
是否有一些本地方式,我可以让()等待回调里面的回调还是我需要某种异步库吗?
我不清楚命名方案与你的问题有什么关系,这似乎更多关于异步问题。你是否试图说你不能改变'.get()'方法的名称或参数(所以你不能设置它来使用回调或其他)? – nnnnnn
@nnnnnn,我就是这么说的。我需要遵守这个命名方案(不会更改.get())的名称或参数),原因有很多。 – Niklas9
无论您是否严格要求,都无法在JavaScript中进行异步调用。虽然像C#这样的语言支持使异步编程易于阅读和编程,但JavaScript具有回调。 (在C#中,'Console.Writeline(await items.Get())')。 – WiredPrairie