200
; 应改根据不一样状况返回不一样的 HTTP 状态码。通过讨论,新项目采用上述方式返回处理结果,因此以往项目中根据返回结果的 errcode
判断是否错误的作法没法再适用,在接收 400
以上的结果时必须 catch.Promise.prototype.then().catch();
。async/await
而后使用 try/catch
。try/catch
不够优雅。async/await
异常处理?这个问题有大佬比我先想到javascript
还有对上文的引申java
function to(promise) { if (!promise || !Promise.prototype.isPrototypeOf(promise)) { return new Promise((resolve, reject) => { reject(new Error('参数必须是 promise')); }).catch((err) => { return [err, null]; }); } return promise.then(data => { return [null, data]; }).catch(err => { return [err, null]; }); }
async function f() { const [error, data] = await to(...); if(error){ ... } ... }
引用 segmentfault 用户 边城 的结论node
用什么方式取决于适用场景、团队约定和我的喜爱等多种因素,在不一样的状况下须要采用不一样的处理方式,并非说哪种就必定好于另外一种——合适的才是最好的!
欢迎转载,转载请注明出处:http://blog.kaguramea.me/archives/js-async-method-catchajax