<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_promise(self):
 """Return the special set of promises for run_instruction. Run Instruction has to support multiple promises (one for reading data, and one for reading back the status from IR. All other primitives have a single promise, so fitting multiple into this system causes some API consistencies. This should be reviewed to see if a more coherent alternative is available. """

        if self._promise is None:
            promise = []
            if self.read:
                promise.append(TDOPromise(self._chain, 0, self.bitcount))
            else:
                promise.append(None)
            if self.read_status:
                promise.append(TDOPromise(self._chain, 0,
                                          self.dev._desc._ir_length))
            else:
                promise.append(None)
            self._promise = promise
        return self._promise