pseudo promise return object with signal module