fn1().then(function(res){ console.log(res) return fn2(res).then(function(res){ console.log(res) },function(err){ console.log(err) })}).catch(function(res){ return fn3(res).then(function(res){ console.log(res) },function(err){ console.log(err) })})fn1执行后根据返回结果走不同线路,成功的话return fn2,失败的话return fn3,这样写好像又开始嵌套,有没有更好的写法?
2 回答
慕村225694
TA贡献1880条经验 获得超4个赞
可以试着改下参数
function p(bool, msg) {
return new Promise(function (resolve, reject) {
setTimeout(function () {
if (bool) resolve(msg);
else reject(msg);
}, 1000)
})
}
p(true, 'true').then(function (res) {
console.log(res);
return p(true, 'then');
}).catch(function (res) {
console.log(res);
return p(true, 'catch');
}).then(function (res) {
console.log(res);
}).catch(function (res) {
console.log(res)
})
添加回答
举报
0/150
提交
取消