我真的对回调以及何时使用它们与等待或异步函数等感到困惑。

我有两个代码块,一个代码块调用一个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();

09-17 04:42