У меня есть функция BigQueryGetEmail()
, которая запрашивает информацию менеджера запрашивающей стороны из BigQuery. Я вызываю код, чтобы получить информацию и передать ее в переменную. Но проблема в том, что JS - это однопоточный язык, поэтому я думаю, что он пропускает код, в котором я вызываю функцию BigQueryGetEmail()
, прежде чем завершить запрос информации, которая мне нужна. Эффект заключается в том, что когда я присваиваю его переменной, он наверняка выдаст ошибку, потому что данных еще нет.
Я пытался поместить назначение переменной в обратный вызов BigQueryGetEmail()
, но все еще не успел собрать данные. Также пробовал асинхронную функцию, но не похоже, что она работает в AppMaker. Функция запроса работает, как и ожидалось, когда я тестирую ее. Возвращает адрес электронной почты менеджера-заявителя.
//run Query to get Manager email info base on requester email
var email = google.script.run.BigQueryGetEmail(emailRequester);
//assign email value to draft.email;
draft.Email = email;
//create record
createDatasource.createItem(function(createdRecord) { });
Я ожидаю, что запрос сначала получит адрес электронной почты диспетчера, а затем передаст значение draft.Email
, прежде чем сохранить запись.