Open ttilberg opened 1 year ago
I don't like current API either, but I remember picking up the names for resolve
and reject
functions so that they don't collide with any other name (thus I added __
), and now we are making them kinda explicit. Looking at:
browser.evaluate_async '__f(arguments)', 5, "arg 1", 2, 3
is so unreadable. I'm always confused when to put what, and use specs to remember how to use it. So maybe it's time to improve the API then if it's doable at all? :)
Reminding about this PR because I just also was confused by arguments[0]
in the README.
Related to #234
I couldn't remember how to get a value back from
evaluate_async
and remembered I had created an example in a previous issue.The existing example leverages
arguments[0]
and calls a simple object. Instead, I would like to see an actual, practical example using familiar things that people would commonly use this for.Additionally, I think we should encourage usage of
__f()
as in the next example, instead ofarguments[0]
, or rework the#evaluate_async
template. As an example, if you call:arguments[0]
no longer refers to the fulfill callback. You end up receivingTypeError: arguments[0] is not a function (Ferrum::JavaScriptError)
.Perhaps this highlights some tweaks that could be made to
evaluate_async
, but for now, I'd like to get this docs change up asap.