javascript - 包装 JavaScript Promise 来解决不同的问题?

标签 javascript asynchronous promise

我是异步 JS 新手。我在 Firefox 中添加了如下功能:

function addFoosToUrl(url, foos) {
    var promises = []
    foos.forEach(foo => {
        entry = { foo: foo, url: url }
        let promise = PlacesUtils.fooStuff.insert(entry)
        promises.push(promise)
    })

    return Promise.all(promises)
}

它按预期工作。函数 PlacesUtils.keywords.insert 将一个条目插入数据库并返回一个 Promise,完成后该 Promise 解析为 null。因此,正如 Promise.all() documentation 所预期的那样,我的函数在插入所有条目后返回一个 Promise,解析为 PlacesUtils.keywords.insert 中解析值的数组,即:一个 null 数组。

似乎应该有一种方法来包装 Promise.all() ,以便我返回的 Promise 解析为对链接有用的内容,例如 url >。有什么巧妙的方法可以做到这一点吗?

最佳答案

Promise.all() 返回另一个 Promise 对象。看起来,您可以使用 .then 链接从那里获取任何您想要的东西。

关于javascript - 包装 JavaScript Promise 来解决不同的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41863912/

相关文章:

JavaScript 语法 : what is ({ }) Is it a function or object?

android - NetworkOnMainThreadException

javascript - 递归 promise 链末尾的链式操作

javascript - 调用 Promise.all 会抛出在非对象上调用的 Promise.all?

javascript - 如何检测服务器是否关闭?

javascript - Joi 验证器替代模式错误消息

javascript - 如何将 csv 文件中的数据加载到表单字段中?

javascript - 异步调用函数

asynchronous - 扭曲/延期的工作原理

C++使用promise,future从线程返回多个值?