- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Promise.all() 不保证 Promise 会按顺序解决。如何做到这一点?
最佳答案
由于您使用的是 Bluebird JS,这实际上可以通过简单的方式完成。
在 2.0 版本中,Bluebird 引入了执行此操作的 Promise.each
方法,因为循环 then 非常简单,但由于它非常常见并且一次又一次地被请求,最终它被添加为自己的方法。
function foo(item, ms){ // note bluebird has a delay method
return Promise.delay(ms, item).then(console.log.bind(console))
}
var items = ['one', 'two', 'three'];
Promise.each(items, function(item, i){
return foo(item, (items.length - i) * 1000)
});
这会产生与其他答案相同的结果,只是代码行数较少,并且还允许 Bluebird 对迭代执行优化。
关于javascript - 如何使用 bluebirdjs 按顺序链接 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26845999/
我有一个小问题,这个脚本工作得很好,有一个问题,“runTenant”方法没有返回一个 promise (需要从“all()”解决。 这段代码: Promise.resolve(runTenant(l
我正在尝试使用 bluebirdjs 获得 promise 功能。但所有尝试都失败了,因为也许我不知道自己在做什么......? 我想获取文件位置,然后逐个下载文件,然后推送到数组。 import *
这个问题在这里已经有了答案: Chained promises not passing on rejection (4 个答案) 关闭 7 年前。 使用 Promise.resolve($.ajax
Promise.all() 不保证 Promise 会按顺序解决。如何做到这一点? 最佳答案 由于您使用的是 Bluebird JS,这实际上可以通过简单的方式完成。 在 2.0 版本中,Bluebi
Promise.all() 不保证 promise 会按顺序解决。如何做到这一点? 最佳答案 由于您使用的是 Bluebird JS,这实际上可以通过一种简单的方式完成。 在 2.0 版中,Blueb
我看到另一篇帖子建议启用环境变量以使其静音。我不想让警告静音。我想修复警告。这意味着,我不想实现 BLUEBIRD_W_FORGOTTEN_RETURN=0 这是我收到消息“警告:在处理程序中创建了
我有很多函数用于向我的服务提供数据。我想循环遍历它们中的每一个,并在其中一个返回所需结果时立即停止。如果第一个有效,那很好。如果出现异常或数据无效,我想转到下一个,依此类推。 我怎样才能实现这个目标?
我是一名优秀的程序员,十分优秀!