Is that an issue in promote()?

So if I want to call promote() on the elements of the array, leaving missing values alone, would calling Base._promote()[1] be the recommended way, or rather an explicit implementation like

my_promote(x::T, y::S) where {T,S} = begin
    R = promote_type(T, S)
    return convert(R, x)
end