我对回调以及何时使用它们与等待或异步函数等感到困惑。
我有两个代码块,一个代码块调用一个API来下载工作表,另一个代码块来处理新下载的工作表。例如。
function getLatestDriveSheet() {
/// stuff here should happen first
};
function sendFeedbackMails() {
/// stuff here should happen after the first
};
getLatestDriveSheet();
sendFeedbackMails()
很明显,API调用总是返回第二,我不知道我应该在哪里实现这样的回调。或者,即使采取正确的方法。
我是否需要将getLatestDriveSheet函数放入getLatestDriveSheet中并创建对getLatestDriveSheet的回调?
答案 0 :(得分:2)
您可以同时使用两种方法。
通过回调您可以这样做
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();