Функция обещания не выполняется в сценарии suitelet

#netsuite #suitescript #exceljs

#нетсуит #описание костюма #превосходно!

Вопрос:

Я пытаюсь запустить этот набор инструментов для экспорта Excel с помощью exceljs . Но у меня есть эта строка, она проходит через эту функцию обещания, и я застрял. Журнал «ok2» не отображается в журнале выполнения. Есть какие-нибудь идеи по этому поводу? Большое спасибо!!!

 var buf = wb.xlsx.writeBuffer(); log.debug('ok', buf); buf.then(function(buf) {  log.debug('ok2'); }) 

Ответ №1:

Вы можете создать функцию buf вне своей OnRequest функции Suitelet и вызывать ее всякий раз, когда вам потребуется, т. Е. Всякий раз, когда условие становится истинным.

Что-то вроде —

 function onRequest(scriptContext) {  //Additional code  var buf = wb.xlsx.writeBuffer();  log.debug('ok', buf);   if(buf) {  //Calling function with parameters if any  bufFunction(); }  function bufFunction() {  //Your function }  

Дайте мне знать в случае возникновения каких-либо проблем в комментариях ниже.

Комментарии:

1. Спасибо. Я забыл упомянуть, что этот буфер записи-это Обещание. Обычно он используется так: const buffer = await workbook.xlsx.writeBuffer(); Поэтому в то время, когда вы проверяете, может ли (buf) он быть недоступен