草庐IT

promised-mongo

全部标签

javascript - ECMAScript Promise.all 方法适用于 jQuery.Deferred。为什么?

我正在研究JavaScript中的Promises。我很感兴趣能否将ECMAScriptPromises与其他实现结合起来,例如jQuery$.Deferred。当Promises.all与jQuery$.Deferred一起正常工作时,我感到很惊讶。我试图在jQuery源代码和CommonJSPromises/A规范中找到答案,但我仍然误解了为什么这段代码按我预期的方式工作(在10秒后执行console.log,而不是5秒):varpromise=newPromise(function(resolve,reject){setTimeout(function(){resolve();/

javascript - 如何理解这段 Promise 代码?

'usestrict';Promise.resolve(()=>'John').then((args)=>{console.log(args);thrownewError('ops')}).catch((ex)=>{console.log(ex)}).then(()=>{thrownewError('ups')console.log('Doe')})我认为console.log(args);应该输出'John',但是当我运行这段代码时,输​​出是[[Function]]所以我很困惑。 最佳答案 Promise.resolve将使用您

javascript - 为什么来自 Promise `.then` 方法的回调是一种反模式

我在StackOverflow上看到了人们建议为AngularJS服务提供回调函数的答案。app.controller('tokenCtrl',function($scope,tokenService){tokenService.getTokens(functioncallbackFn(tokens){$scope.tokens=tokens;});});app.factory('tokenService',function($http){vargetTokens=function(callbackFn){$http.get('/api/tokens').then(functionon

javascript Promise.all 只返回最后一个 promise

我有一个这样的脚本:vara=[{'a':1},{'b':2}]varallPromises=newArray(a.length)for(variina){allPromises[i]=Promise.resolve().then(response=>{console.log(i)console.log(a[i])//Dosomethigoneveryloopwithkeyandvaluereturni})}Promise.all(allPromises).then(response=>console.log(response))在我的for循环中,它只给我最后一个索引和最后一个索引的

javascript - 在 promise 解决后修改组件状态

我想在promise解决后修改组件的状态(reactnative)。这是我的代码:classGreetingextendsComponent{constructor(props){super(props);this.state={text:'Starting...'};varhandler=newRequestHandler();handler.login('email','password').then(function(resp){this.setState({text:resp});});}render(){return(Resp:{this.state.text});}}但是当

javascript - Promise.all() 使用 Backbone 解决 IE 11

背景:我的任务是帮助解决出现以下错误的问题:'Promise'isundefined'这是我们的sessionsmodel.js脚本的一部分:returnPromise.all(promises);promises是一组需要发生的操作,如果有任何失败,它将被拒绝。问题:根据我的研究,IE不支持Promise那么是否有解决方法可以应用于此返回值来完成同样的事情? 最佳答案 由于您使用的是Backbone,所以promise可能是jQuerypromise。你可以使用jQuery.whenfunction与Promise.all相同:r

javascript - 如何在没有 "indentation pyramids"的情况下正确表达任意 Promise 链?

这个问题在这里已经有了答案:HowdoIaccesspreviouspromiseresultsina.then()chain?(17个答案)关闭5年前。Q.reduce和Q.all等方法有助于在异类promise集合的特定情况下扁平化promise链。不过,请注意一般情况:constF=(x)=>x;consta=F(1);constb=F(2);constc=F(a+b);constd=F(a+c);conste=F(b+c);console.log(e);也就是说,一系列赋值,每个术语都依赖于先前定义的任意术语。假设F是一个异步调用:constF=(x)=>Q.delay(100

javascript - Node.js Q promise ,可以使用 this() 为什么要使用 defer()?

我想做这样的事情:somePromiseFunc(value1).then(function(value2,callback){//insertthenextthen()intothisfunction:funcWithCallback(callback);}).then(function(dronesYouAreLookingFor){//Haveaparty}).done();它没有用。我无法让它工作。我被建议为此目的使用defer()。他们的owndocs说我们应该将deferreds用于回调式函数。虽然这令人困惑,因为他们著名的压平金字塔示例都是关于回调的,但是这个示例太抽象了

javascript - Bluebird promise 多个参数

我是Promises的新手,不知道如何解决这个问题:我正在做一个身份验证系统,我的第一个电话是检查数据库中的电子邮件。如果用户存在,则根据bcrypted密码检查密码...我将此库用于bcrypt:https://npmjs.org/package/bcrypt这与promises不兼容,所以我对以下签名使用“promisify”:compare(password,crypted_pa​​ssword,callback)。所以这是我的代码:varcompare=Promise.promisify(bcrypt.compare);User.findByEmail(email).then(

javascript - 循环使用本地 promise ;

我正在尝试使用nativeES6promises进行异步循环它有点有效,但不正确。我想我在某个地方犯了一个大错误,我需要有人告诉我它在哪里以及如何正确完成vari=0;//createssampleresolverfunctionpayloadGenerator(){returnfunction(resolve){setTimeout(function(){i++;resolve();},300)}}//createsresolverthatfulfillsthepromiseifconditionisfalse,otherwiserejectsthepromise.//Usedonl