我正在使用couchbase ottaman包:
let transaction = new Transaction({name:'Couch'});
transaction.save((err) => {
console.log(err);
});
但是我可以在这个包中使用async / await吗?
async create(){
let transaction = new Transaction({name:'Couch'});
try{
await transaction.save();
} catch (err) {
console.log(err);
}
}
我收到错误:
node_modules\ottoman\lib\modelinstance.js:457
callback(err);
^
TypeError: callback is not a function
答案 0 :(得分:1)
基本上,你必须检查它是否会返回承诺 - 你可以在盒子外面使用它。如果没有 - 你可以宣传你需要的功能。 结果中有这样的事情:
function saveModel(transaction) {
return new Promise ((resolve, reject) => {
transaction.save(err => {
if (err)
reject(err);
else
resolve();
});
});
}
此功能可与async / await:
一起使用async create(){
let transaction = new Transaction({name:'Couch'});
try{
await saveModel(transaction);
} catch (err) {
console.log(err);
}
}
另一种选择是查看source files,但我太懒了。