栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

跳过Q Promises中的then函数的正确方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

跳过Q Promises中的then函数的正确方法

这取决于要跳过的条件是什么,要执行的操作类型以及条件失败时整个事情的“有用性”。您可能可以在此处使用智能拒绝功能来传达消息。否则,我认为处理此问题的正确方法实际上是一组嵌套的promise调用。

这也符合 promises背后核心思想 ,即将同步控制结构带回异步代码执行。通常,在使用Promise时,您应该首先考虑如何 使用同步代码
完成任务。如果您考虑自己的情况,它可能会像这样工作:

var contents = readFromFile();var results = initialOperation(contents);if (fancyCondition(results)) {     results = doSomething(results);     results = doMore(results);}processAndPrint(results);

因此,您将在同步代码中找到一个真正的分支。因此,在使用诺言的异步代码中避免这种情况是没有意义的。如果您可以 跳过
某些事情,那么您实际上是在使用gotos进行跳转。但是,您可以分支并分别做其他一些事情。

因此,回到promise和异步代码,使用另一组链接的操作来创建实际分支是完全可以的,并且本着promise背后的意图进行。因此,上面的代码可能如下所示:

readFromFile(fileName).then(initialOperation).then(function (results) {    if (fancyCondition(results) {        return doSomething(results) .then(doMore);    }    return results;}).catch(errorHandler).then(processResults).then(outputResults); // Or `done` in Q

另请注意,当您开始使用自行返回承诺的函数而不是从中内联创建承诺时,promise管道会自动看起来更加干净

then



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/406571.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号