我正在编写一个数据访问层,我的dalmethod将被称为&在调用者完成工作后,我必须关闭数据库。
我不想打扰调用者关闭我的数据库(或执行其他操作)。
基本上我在寻找异步操作中的某些同步性(承诺?)。
以下是伪代码。
std::string::find()
答案 0 :(得分:0)
你是对的,它是一个承诺的经典之作:
function Caller() {
dalmethod( function(err, db) {
// Let promisification of anonymous callback
return new Promise(( resolve, reject ) => {
console.log('do somethings');
// Simulate processing errors
var dice = Math.random();
if (dice>0.5) {
resolve( 'Some result' );
} else {
reject( new Error('Something went wrong') );
}
});
});
}
function dalmethod(callback) {
var somevalue, db;
callback(somevalue,db)
.then(
response => { console.log( response, 'close db' ); },
reject => { console.log(reject); }
);
}
Caller();