草庐IT

PG-Promise

全部标签

javascript - 从 Promise.all 合并许多数组

当Promise.all完成时,它返回一个包含数据的数组。在我的例子中,数组只是数字:[[1,4,9,9],[4,4,9,1],[6,6,9,1]]数组可以是任意大小。目前我正在这样做:letnums=[]data.map(function(_nums){_nums.map(function(num){nums.push(num)})})有没有其他方法可以做到这一点?lodash是否有任何功能可以做到这一点? 最佳答案 ES2019介绍Array.prototype.flat这大大简化了这一点:constnums=data.flat

javascript - 加载文件后如何将 promise 错误传播到更高的 promise 级别?

我正在使用bluebird开发异步脚本加载器我正在努力将错误传递到我可以捕获它的地方。加载文件后,我将调用名为declare的方法,如下所示:declare("storage",[{"name":'util',"src":'../src/util.js'}],function(util){varstorage={};//...stuffwithutilreturnstorage;});声明是:declare=function(name,dependency_list,callback){varresolver;//digestpromisesreturnedforeachmodulef

javascript - 使用 EventListener 解决 promise

我正在处理一个弹出式div,我想在动画上附加一个promise,这样我就可以在弹出式窗口结束后做一些事情。我的方法不起作用,因为我找不到将promise传递给事件处理程序上的函数的方法。似乎你不能在这里使用bind。我已经尝试过,虽然我可以解决promise,但我无法删除事件处理程序这里会有什么不同的解决方案?functionEventListenerForPopUp(){this.removeEventListener("animationend",EventListenerForPopUp);this.Show.resolve();}functionShowHideDiv(){th

javascript - 如何在异步/等待语法中使用 Promise.prototype.finally()?

实际上我的主要问题是在async/awaitES8语法中使用Promise.prototype.catch(),毫无疑问是Promise。prototype.then()存在于async/await语法的本质中。我搜索了关于在async/await中使用Promise.prototype.catch()并找到了这个:async()=>{try{constresult1=awaitfirstAsynchronousFunction();constresult2=awaitsecondAsynchronousFunction(result1);console.log(result2);}c

javascript - task.js 生成器/ promise 与异步回调

我想知道在处理JavaScript中的异步代码时,这两种方法中哪种方法更好。我想了解哪种方法可以生成更清晰的代码。我习惯于使用promises,它们似乎比异步方法(https://github.com/caolan/async)更灵活。我也知道Task.js库(http://taskjs.org/),但这依赖于作为EcmascriptHarmony一部分的yield关键字。 最佳答案 async库封装了几个非常常见的异步模式,包括并行进行任意异步调用和异步迭代列表。它旨在与“nodeback”(err,res)API一起使用,这使得

javascript - 我可以触发并忘记 nodejs (ES7) 中的 promise 吗?

我想用babel运行这段代码:redisClientAsync.delAsync('key');returnawaitsomeOtherAsyncFunction();在第一行没有await的异步函数中。这样可以吗?我还能如何运行我不关心的东西?我可以在没有回调的情况下触发非promise函数del('key',null)吗? 最佳答案 是的,你可以这样做,它会并行运行两个异步函数。您刚刚创建了一个promise并将其丢弃。但是,这意味着当promise被拒绝时,您不会注意到。你只会getanunhandledRejectionev

javascript - RxJS:连接三个 promise ,区分结果

我有三个promise,Rest请求返回数据列表。第三个有对前两个列表的引用(ids),所以我想在我拥有所有数据时将这些ids映射到相应的名称。映射不是问题,我只是为此使用了Lodash。但问题是在开始计算此映射之前等待三个promise解决。我想到了使用concat():Rx.Observable.concat(p1,p2,p3).subscribe(functiononNext(list){//Assignthelisttothecorrespondingvariableinthescope},functiononError(e){//Notifyoferror},function

javascript - 如何使用 EmberData 在 EmberJS 中返回由嵌套模型组成的 promise ?

环境#Ember:1.4.0#EmberData:1.0.0-beta.7+canary.b45e23ba型号我已经简化了我的用例,使问题更容易理解和回答。假设我们有3个模型:Country,Region和Area:Country:-id:DS.attr('number')-name:DS.attr('string')-regions:DS.hasMany('region')Region:-id:DS.attr('number')-name:DS.attr('string')-country:DS.belongsTo('country')-areas:DS.hasMany('area'

javascript - 单元测试 angularjs $q.all - promise 永远不会完成

我正在尝试测试我使用Angular的$q构建的服务promise的实现。我按照promise使用了Karma、Mocha、Chai、Sinon、SinonChai和Chai的组合。我编写并返回promise的所有测试都通过了,但拒绝或使用$q.all([...])的测试。我已经尝试了所有我能想到的方法,但我似乎无法找到问题所在。以下是我正在测试的精简版:"usestrict";describe("Promise",function(){var$rootScope,$scope,$q;beforeEach(angular.mock.inject(function(_$rootScope_

javascript - 在 promise 中打开窗口

我们正在使用promise库Q,但遇到以下问题。window.open()isblockedbybrowserwheniscalledfrompromise我们尝试在promise机制启动之前打开窗口,这是有效的,但问题是当打开新选项卡(并获得焦点)时,所有浏览器资源都引用新选项卡,逻辑是仍然在第一个选项卡中完成,这会导致性能不佳。还有其他方法可以在promise完成时使用事件处理此事件,然后捕获此事件并打开新窗口。更新“所有浏览器资源都指向新标签页”是什么意思我们发现了有趣的行为:)当用户单击按钮时,我们正在运行应用程序,在这种情况下,我们打开新选项卡并将焦点更改为新选项卡,我们正在