我有一个具有功能的utils文件:
function max_entries_reached(callback){
EntriesCounterDB.getCounter(this.username, function(error,
counter){
if(counter > this.maxentries) callback(true);
else callback(false);
}
}
它是一个简单的函数,它基于猫鼬查询来响应true / false ...
async function run_checks(){
while(is_opening_hours()){
utils.max_entries_reached(async function(maxstop) {
if (maxstop !== true) {
await switch_mode();
}
await utils.sleep(60*10);
}
}
此代码是一个非常快速的无限循环,似乎跳过了所有睡眠等,只是在while循环中循环。我猜它调用的东西不同步...
我正在尝试完成一些琐碎的事情,但无法弄清楚。
我只希望能够使用以下命令运行run_checks()函数:
await run_checks();
然后等待猫鼬的结果,然后再运行下一个异步函数switch_mode()...如何在没有超快速循环的情况下执行此操作?
答案 0 :(得分:1)
Mongoose回调API已过时,因为它长期支持Promise。
应该是:
if($stmt->execute()){
//store retrieved row to a variable
$row = $stmt->fetch(PDO::FETCH_ASSOC);
// display the row after fetching the contents.
var_dump($row);
//values to fill up our form
$payment_id = $row['payment_id'];
$payment_supplier = $row['payment_supplier'];
$payment_ref = $row['payment_ref'];
$payment_cost_rating = $row['payment_cost_rating'];
$payment_amount = $row['payment_amount'];
}else{
echo "Unable to read record.";
}
哪些可以链接任何其他承诺:
async function max_entries_reached(){
const counter = await EntriesCounterDB.getCounter(this.username);
return (counter > this.maxentries);
}
答案 1 :(得分:0)
尝试这样
async function run_checks(){
utils.max_entries_reached(async (maxstop) {
if (maxstop !== true) {
await switch_mode();
}
}