Можем ли мы осмысленно использовать `await` для объекта FuncUnit?Javascript

Форум по Javascript
Ответить
Anonymous
 Можем ли мы осмысленно использовать `await` для объекта FuncUnit?

Сообщение Anonymous »

Объект FuncUnit имеет метод then, поэтому передаваемая ему функция выполняется только после завершения всех предыдущих действий FuncUnit. Например, следующий фрагмент должен гарантировать, что someFunction будет выполнен только после клика.

Код: Выделить всё

F(.someClass).visible().click().then(someFunction);
Мой вопрос заключается в том, можем ли мы переписать это с помощью await, сохранив ту же гарантию:

Код: Выделить всё

await F(.someClass).visible().click();
someFunction();
Поскольку объект FuncUnit имеет метод then, логично предположить, что await сможет использовать его, чтобы вести себя так, как я описал. Однако, если я посмотрю на документацию FuncUnit, метод then, похоже, не удовлетворяет всем условиям, требуемым обещаниями:
https://funcunit.com/docs/FuncUnit.prototype.then.html

https://promisesaplus.com/
Более того, я заметил, что существуют инициативы по обеспечению совместимости FuncUnit с Промисы:
https://github.com/yola/funcunit-as-promized

https://github.com/bitovi/funcunit/issues/229
Похоже, это подразумевает, что FuncUnit изначально не совместим с Promise, что, как я экстраполирую, означает, что его нельзя использовать с await.
Я также опросил несколько LLM, и все они, кажется, уверены, что await не очень хорошо работает с FuncUnit, и что в приведенном выше примере someFunction будет вызываться перед щелчком мыши.
Когда я попробовал приведенный выше фрагмент кода, кажется, что он ведет себя так, как я ожидал, но я боюсь, что могу наблюдать состояние гонки или, возможно, поведение может различаться в зависимости от браузера или среды.

Подробнее здесь: https://stackoverflow.com/questions/798 ... nit-object
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»