Столкнулся с аналогичной проблемой с Papaparse или, насколько я знаю, с библиотекой и обратными вызовами. Хотя я могу указать вам направление, в котором вы сможете найти ответ для себя.
Во-первых, ваш display_links
создает пустой массив, потому что при синтаксическом анализе файла через Papaparse complete
- это асинхронная функция обратного вызова, которая означает, что ваше присвоение display_links
внутри обратного вызова происходит асинхронно после выбранного вами файла. полностью обработан. Поэтому, когда вы регистрируете свою переменную, ей еще не присвоен результат. Короче говоря, это не будет работать.
Теперь, чтобы решить вашу проблему, единственный ответ, который я нашел, состоит в том, что, какие бы планы у вас ни были на display_links
, вы можете поместить их в функцию, а из complete
вызвать эту функцию с display_links
в качестве аргумента. , Таким образом, ваша функция будет выполнена с результатами разбора.
Посмотрите на Asynchronous JS и узнайте, как работает обратный вызов, чтобы найти для себя более оптимальное решение, если оно не работает для вас.
Примечание: моя проблема в том, что я хотел абстрагироваться от синтаксического анализа и других связанных действий внутри функции, и как только файл был прочитан / проанализирован, эта функция вернет конечный результат обратно . Эта последняя часть повторного задания конечного результата - это то, чего я не могу выполнить, так как я думаю, что вы можете только двигаться вперед и вызывать другую функцию из обратного вызова complete
, а возврат не работает: /
Ссылка -