2 回答
TA贡献1818条经验 获得超11个赞
由于同样await适用于非承诺,因此您可以保存整个Promise构造:
const async_function = () => get_data_from_db();
(async()=>{
try {
//call async function
const data = await async_function();
console.log(data);
} catch (err) {
console.error(err.message);
}
})();
TA贡献2065条经验 获得超14个赞
可以兑现诺言吗
有时候没关系。将被拒绝的承诺视为“异步抛出”和它的障碍
但是您的代码是反模式的示例http://bluebirdjs.com/docs/anti-patterns.html#the-explicit-construction-anti-pattern
const async_function = async (resolve, reject) => {
// some code
get_data_from_db
.then(data => resolve(null,data))
.catch(e => resolve(e, null)
}
您可以像这样重写它:
const async_function = () =>
get_data_from_db()
.catch(e => e) // it will be resolved with e
添加回答
举报