add defer-promise implement, 5 testcase done, need more testcase