1、then支持延续任务调用方式(Continuation tasks),而done不支持 比如then可以这样用,而done不可以: promise().then().then().then() 2. then会捕获未处理的异常然后把错误状态作为返回值返回,而done则会把异常直接抛出