There is no possible value of type Nothing (not null , not a single one). It is impossible to promise Nothing , since a function with a result type of Nothing cannot return.
Since there is no value of type Nothing , there is no way to succeed. You are not really saying success, you are misinterpreting what is meant here:
when you declare var (and only when you declare it), you can set its default value with "_". v ar v : Int = _ set v to 0 , and var v: String = _ set it to null . If you try this with Nothing, var v : Nothing = _ , it will work. Again, there is no value of type Nothing .
On the other hand, when you write promiseWithFinish.Success(_) , this is a shortcut to
x => promiseWithFinish.Success(x)
You are creating a function value, not using it; you are not doing anything.
source share