所以问题是我必须得到第一个n自然数的总和,但条件是
1.使用辅助函数返回一个 promise
2.不能+在main函数内部使用operator(只允许在helper函数中)。
3.不能使用async-await
在如此远的解决方案我来就是
nat_sum = (n) =>{
let i=1,res=0;
while(i<=n){
sumP(res,i++).then( data => {
res = data;
console.log(res);
});
console.log("res is ",i, res);
}
};
//Helper function is
function sumP(x,y){
// Always resolves
return new Promise((resolve,reject)=>{
resolve(x+y);
});
}
但问题是,循环只是sumP用初始值resie初始化所有对 的调用0,这意味着它只是不等待前一个承诺resolve并更新res变量。
使用回调解决的相同问题如下(您可以忽略这一点,只是对问题的洞察!):
function sumc(x,y,callme){
return callme(x,y);
}
nat_sumC = (n)=>{
let i=1,res=0;
while(i<=n){
res = sumc(res,i++,sum);
}
return res;
}
MYYA
慕尼黑8549860
相关分类