在对象中声明异步函数/承诺



我有一个函数,它返回一个带有"导出";功能。在这些导出的函数中,我希望使用promise。

var DATABASE = (function () {
var exports = {};

exports.query = function(filter = {}) {
return true;
}
return exports;
}());
console.log(DATABASE.query());

我试图使这个函数异步。但我得到DATABASE.query不是一个函数。

var DATABASE = (async function () {
var exports = {};

exports.query = await function(filter = {}) {
return true;
}
return exports;
}());
console.log(DATABASE.query());

我在promise中尝试过,它似乎有效,但我认为wait/async是更好的编码。

var DATABASE = (function () {
var exports = {};

exports.query = function(filter = {}) {
return new Promise(function(resolve, reject) {
resolve(true);
});
}
return exports;
}());
DATABASE.query().then(function(result) { 
console.log(result);
});

你能帮我把它转换成async/await吗?

您需要使query方法异步,而不是(不必要的(用于模块模式的IIFE:

const DATABASE = (function () {
const exports = {};

exports.query = async function(filter = {}) {
//                ^^^^^
return true;
};
return exports;
}());
console.log(DATABASE.query());

最新更新