Update Promise

- Promises/A+ compliance
- basic tests
If `Promise.resolve` is correctly defined, then you can skip the ternary operator and use `Promise.resolve(array[index])).then(getOnFulfill(index))` directly.