- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力弄清楚如何异步执行多个级别的 promise 。我已经搜索了文档,但大多数 promise 库都让您等待所有 promise 执行一些逻辑或一个然后下一个。我需要这两方面的一个方面。我写了一个关于我想要实现的目标的快速演示。
这背后的总体思路是我有 4 个需要调用的函数。 A和B可以同时被调用。 C 依赖于 B 的返回。然后我需要所有三个(A,B,C)来计算 D。我将如何构建它?
我尝试在这里画出一般流程图:
A -> -> D
B -> C ->
<小时/>
示例代码:
var bluebird = require('bluebird');
function a(){
setTimeout(function(){
console.log('a called');
return 'a';
},1000);
}
function b(){
setTimeout(function(){
console.log('b called');
return 'b message';
},1000);
}
function c(bMessage){
setTimeout(function(){
console.log('c called');
return 'c set in motion';
},1000);
}
function d(aMessage, bMessage, cMessage){
setTimeout(function(){
console.log('prmoises: called: ' + aMessage + bMessage + cMessage);
return 'this the end';
},1000);
}
function test(){
// what goes here?
}
test();
最佳答案
以 returning promises from your asynchronous functions 开头而不是仅仅调用 setTimeout
。最好直接删除 setTimeout
完全并使用<a href="http://bluebirdjs.com/docs/api/promise.delay.html" rel="noreferrer noopener nofollow">Promise.delay(…)</a>.then(…)
.
然后使用 then
对于单个依赖项和 Promise.join
对于多个。不要构建长链,将您需要的每个结果的 promise 存储在变量中:
function test(){
var aPromise = a();
var bPromise = b();
var cPromise = bPromise.then(c);
return Promise.join(aPromise, bPromise, cPromise, d);
}
另请参阅相关问题 How do I access previous promise results in a .then() chain? .
关于javascript - Bluebird promise 多层次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37801419/
我正在尝试将多个水平链接的 Button 和 TextView 垂直链接为 View 集,但仍保持平面 View 层次结构。这是我的初始布局和代码:
到目前为止,我已经在Google BigQuery上训练了几种模型,目前我需要查看模型的外观(即架构,损失函数等)。 有没有办法获取这些信息? 最佳答案 仔细阅读文档后,我可以说该功能尚不存在。我什至
本文实例讲述了PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)。分享给大家供大家参考,具体如下: 前言: 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个
我是一名优秀的程序员,十分优秀!