我意识到这里已经提出了这样的问题,在我发布此问题之前,我已经进行了广泛的研究。
我有七个需要按顺序运行的操作。大多数与数据库相关,因此可能需要一些时间才能完成。
- getLiveItems => puppeteer页面(平均10秒)
- getOldItems => mySQL查询
- getNewItems => mySQL查询
- compareItems => lodash比较
- saveOldItems => mySQL插入查询
- saveNewItems => mySQL插入查询
- notifyUser => puppeteer打开页面
我了解我需要使用回调或Promise。但是我什至无法使用这两种方法来完成前两个操作。
这是我最近的尝试。
var oldItems, newItems;
var getoldItems = async function(callback) {
await connection.query('SELECT * FROM items', function(err, rows) {
if (err) {
throw err;
} else
callback(null, rows);
});
}
var getnewItems = async function(callback) {
await connection.query('SELECT * FROM newItems', function(err, rows) {
if (err) {
throw err;
} else
callback(null, rows);
});
}
const init = async function(){
await getoldItems(function(err, content) {
if(err){
console.log(err);
} else {
oldItems = content;
return oldItems;
}
})
await getnewItems(function(err, content) {
if(err){
// console.log(err);
} else {
newItems = content;
return newItems;
}
})
return;
}
( async function() {
await init();
console.log(oldItems);
console.log(newItems);
});
我没有输出。也没有错误。
我真的很困惑我已经阅读并阅读了有关此主题的内容,但是我缺少一些基本知识。
这就是我处理脚本的方式,这就是我这样编写脚本的原因...
我将等待init函数的结果,该函数会 以下... 我将等待getOldItems的结果,然后继续 等待getNewItems的结果。那我要回去 返回Init并控制两个结果。
我想念什么?
先感谢您。
在佛罗里达沮丧 约翰