IBM interview question

Explain promises in javascript?