we should not combine the Pone.then().then(null, pInter.reject)

because the function in the first then may throw error, so it need to
handle the error in the next then