ваша первая эмиссия [true, []]
ваше условие пропуска может быть переписано как:
skipWhile(([loading, items]) => !loading && !items.length)
на английском языке sh: skip while not loading and there are not items
, в вашем первом случае эмиссии это оценивает до false && true
, то есть false
.
skipWhile
перестает пропускать после одного false
результата, поэтому первое излучение останавливает его оценку больше.
вам необходимо настроить logi c или используйте другой оператор. не могу сказать наверняка, так как вы не обрисовали ожидаемые результаты. Я ожидаю, что вы хотите:
skipWhile(([loading, items]) => loading || !items.length)
, который пропустит первые 2 выброса и испустит третий.