1 回答
![?](http://img1.sycdn.imooc.com/5333a0780001a6e702200220-100-100.jpg)
TA贡献1829条经验 获得超13个赞
就结果而言,您的两个版本之间根本没有区别。第一个只是创建一个中间局部变量,它不会影响结果或并行性或您朋友断言的任何东西。
你的第二个更简洁,同样清晰,是我在你两个之间的偏好。
另一种选择是使用async/await这对异步操作序列特别有用:
async function run() {
try {
let data = await getNewDataPromise(2);
data = await getNewDataPromise(data);
data = await getNewDataPromise(data);
data = await getNewDataPromise(data);
console.log(data);
} catch(e) {
console.log(e);
}
}
或者,如果你真的只是一遍又一遍地调用同一个函数,你也可以使用一个循环,它会减少一些重复(更 DRY):
async function run() {
try {
let data = 2;
for (let i = 0; i < 4; i++) {
data = await getNewDataPromise(data);
}
console.log(data);
} catch(e) {
console.log(e);
}
}
添加回答
举报