我真的很困惑回调以及何时使用它们与等待或异步函数等。
我有两个代码块,一个调用API来下载一个工作表,另一个用于处理新下载的工作表。例如。
function getLatestDriveSheet() {
/// stuff here should happen first
};
function sendFeedbackMails() {
/// stuff here should happen after the first
};
getLatestDriveSheet();
sendFeedbackMails()
显然,API调用总是返回第二,我不明白的是我应该在哪里实现这样的回调。或者,如果它甚至是正确的路线。
我是否需要将getLatestDriveSheet函数放在getLatestDriveSheet中并创建对getLatestDriveSheet的回调?
你可以使用这两种方法。
通过回调你可以这样做
function getLatestDriveSheet(callback) {
/// stuff here should happen first
var sheet = getTheSheet();
callback(sheet);
};
function sendFeedbackMails(sheet) {
/// stuff here should happen after the first
sendSheet(sheet);
};
getLatestDriveSheet(sendFeedbackMails);
或者如果你可以使用async
async function getLatestDriveSheet(sheet) {
/// stuff here should happen first
const sheet = await getTheSheet();
return sheet;
};
function sendFeedbackMails(sheet) {
/// stuff here should happen after the first
};
async function getSheetAndSendMails() {
const sheet = await getLatestDriveSheet();
sendFeedbackMails(sheet);
}
getSheetAndSendMails();