I'm pretty sure you can do:
SomeOtherNode
> SomeNode
# SomeNode.gd
signal some_signal
func some_function():
emit_signal("some_signal", <value>)
# SomeOtherNode.gd
func another_function():
$SomeNode.some_function()
var value = yield($SomeNode, "some_signal")
Of course this configuration is just an example, but the main idea is you can retrieve the values passed to emit_signal(<signal>, <values1>, <value2>, ...)
. I don't know offhand how multiple values are passed back - my guess would be an array but you'll have to do some testing with that.