带回调的订购功能

时间:2019-02-21 19:32:28

标签: javascript node.js callback

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

我有两个代码块,一个代码块调用一个API来下载工作表,另一个代码块来处理新下载的工作表。例如。

            function getLatestDriveSheet() {
                /// stuff here should happen first
            };

            function sendFeedbackMails() {
                /// stuff here should happen after the first
            };

            getLatestDriveSheet();
            sendFeedbackMails()

很明显,API调用总是返回第二,我不知道我应该在哪里实现这样的回调。或者,即使采取正确的方法。

我是否需要将getLatestDriveSheet函数放入getLatestDriveSheet中并创建对getLatestDriveSheet的回调?

1 个答案:

答案 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();