Вот что происходит:
process(my_start_list)
. if
выполняется, если len(my_list) > 1
, и нет там же. Теперь, поскольку else
не был выполнен, и поскольку это единственное место, где у вас есть предложение return, вы возвращаете значение по умолчанию, которое является None
. Чтобы исправить это, вы хотите вернуть список, возвращенный process(my_list)
.
То есть:
def process(my_list):
# do some stuff
...
if len(my_list) > 1:
return process(my_list)
else:
print(my_list)
return my_list
Спасибо. Рекомендуемый подход заключается в том, чтобы поставить ваши элементы / args в глобальный массив. Каждый раз, когда приходит новый запрос, таймер настраивается для непрерывного выполнения, пока не останется больше элементов. Вам нужно будет объявить функции как асинхронные, установив «sync: false» в ваши функции. Json. Проверка на примере для вас, и в этой статье приведен пример сохранения состояния.
Как сказал Кейур, для вашей очереди будет выбрана глобальная очередь и какой-то таймер для отправки этой очереди.
Например, см. https://gist.github.com/ Zlatkovsky / 84c8d5749cf98009958cf6a641b22cbd
Обратите внимание, как функция возвращает Promise в качестве результата:
function getSentimentFast(text: string): Promise<number> {
return new Promise((resolve, reject) => {
queue.add({
text: text.substr(0, 1000),
callback: function (sentiment) {
resolve(sentiment)
}
});
});
}
Затем он полагается на таймер в очереди для отправки API вызывает пакеты и вызывает обратный вызов (который, в свою очередь, разрешит Promise).