欢迎来到美好的承诺世界。
then在您的示例中如何工作
您的主张
1正确。我们可以使用
Promise.resolve一个值在Bluebird中模拟一个承诺解决。
让我们展示一下:
让我们得到一个返回诺言的函数:
function foo(){ return Promise.resolve("Value"); }foo().then(alert);
"Value"如我们所见,此简短片段将引起注意。
现在,让我们再创建两个promise,每个promise都会发出警报并返回不同的值。
function task2(e){ alert("In two got " + e); return " Two ";}function task3(e){ alert("In three got " + e); return " Three ";}
因此,正如您在第一个代码中看到的那样,它确实将在链中解析,每个解析都具有前一部分的值。
在第二个示例中,task2和task3将获得相同的值,并且也将一起执行(也就是说,任务3将不等待任务2)。您可以在这里看到。
无极Promise.all(或仅从
then实现处理程序返回一个数组,然后使用
.spread)用于等待多个结果全部完成。在您的示例中,您希望将一个结果分为多个部分。抓住
您总是将catch放在要捕获错误的位置。正如您通常在同步代码中那样。只要记住要始终兑现承诺或承诺代码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)