草庐IT

promises

全部标签

javascript - 从执行函数返回 promise ?

尝试与JSAPI交互,但在由Grunt任务运行时失败;我觉得我的逻辑很困惑。我的步骤:从文件中获取token,检查它们(check_tokens)如果它们是旧的-刷新它们(refresh_tokens)调用API刷新,如果失败-获取新的(authorize_with_api)来自authorize_with_api错误拒绝或使用token解决目前Grunt任务报告一个UnhandledPromiseRejectionWarning并且永远不会完成。如果我注释掉对authorize_with_api的调用,它会正确退出并出现错误,并且我会打印最上面的caughterror!消息。为什么我

javascript - 一旦所有嵌套的 promise 都解决了,就触发 Promise.all()

我正在尝试使用他们的FirebaseAPI递归地获取HackerNews故事的所有评论。一个故事有一个kids属性,它是一个表示评论的ID数组。每个评论都可以有自己的kids属性,指向它的子评论,等等。我想创建一个包含整个评论树的数组,如下所示:[{'title':'comment1','replies':[{'title':'comment1.1'},{'title':'comment1.2''replies':[{'title':'comment1.2.1'}]}]}]我想我可以使用以下函数来做到这一点:functiongetItem(id){returnapi.child(`it

javascript - node.js 链接多个 promise (使用 Mongoose )

以下是我正在处理的一个典型的promise函数。var_delete=function(t,id){returnPromise.cast(Event.find({where:{id:id}},{transaction:t})).then(function(d){if(d){//-------(*)returnPromise.cast(d.updateAttributes({status:-1},{transaction:t})).then(function(){//doinventorystuffreturnPromise.cast(Inventory.update({}).exec(

javascript - promise.all 是如何工作的?

我开始深入研究promises并发现有趣的Promise.all。在MDN中声明ThePromise.all(iterable)methodreturnsapromisethatresolveswhenallofthepromisesintheiterableargumenthaveresolved.这基本上意味着设置promise在参数列表中的所有promise都已解决之后解决。我试图实现它。我简单地promise了ajax调用。varget=function(url){returnnewPromise(function(resolve,reject){varxhtml=newXML

javascript - chai-as-promised 和 mocha 中嵌套属性的测试值

我正在尝试使用chai-as-promised库测试返回promise的函数。我promise的结果是一个具有嵌套属性的对象。是否可以测试深层嵌套属性的值。例如functionmyFunc(){returnnewPromise((resolve,reject)=>{constdata={thing:{foo:'bar',baz:'lah'}}resolve(data)})}如何在不检查整个对象的情况下测试foo属性是否等于“bar”?我试过这样的事情:expect(myFunc()).to.eventually.have.property('thing.foo','bar')但是没有运

javascript - 未捕获( promise )DOMException : Subscription failed - no active Service Worker

我正在尝试订阅用户,但这是我第一次遇到的错误。第二次,它正在工作,因为用户已经处于事件状态这是我的代码:if('serviceWorker'innavigator){console.log('ServiceWorkerissupported');navigator.serviceWorker.register('sw.js').then(function(reg){console.log(':^)',reg);reg.pushManager.subscribe({userVisibleOnly:true}).then(function(sub){console.log('endpoin

javascript - 尝试在 Reactjs 中实现一个简单的 promise

只是第一次在React中尝试Promises。我有一个基本的promise(从别人的代码中提取),但不知道如何调整它以使其有用。到目前为止我所拥有的(在我的render()函数中)varpromise=newPromise((resolve,reject)=>{letname='Dave'if(name==='Dave'){resolve("Promiseresolvedsuccessfully");}else{reject(Error("Promiserejected"));}});promise.then(function(result){console.log(result);/

javascript - 扩展内置的 javascript Promise

我正在尝试用一种新方法扩展javascriptpromise。在这种情况下,这个新方法称为foo,它实际上执行如下操作:Promise.foo=function(arg){returnthis.then(function(result){returnresult.foo(arg);});};所以简而言之,foo()函数是等待promise解决然后在结果上调用foo()的快捷方式。这个函数的本质是它可以被链接起来,就像then()一样。myPromise.foo(a).foo(b).foo(c);我觉得这应该是可能的,但我只是不确定正确的路径是什么。这是我试过的:varFooPromis

javascript - 将应用程序与 REPL 一起使用时如何解决 promise

我有一个基本的Node网络服务器(Koa.js+一个ORM)。我喜欢以REPL开头这意味着我可以像使用CLI工具一样使用我的应用程序。我的所有查询都返回Promises,但我不知道如何在REPL中解决它们。我该如何解决它们?例如以下代码(fetch()查询数据库并返回一个promise)仅给出此输出Promise{_bitField:4325376,_fulfillmentHandler0:undefined,_rejectionHandler0:undefined…}Transaction.where('reference','1').fetch().then((res)=>retu

javascript - 使用 Q promises 串行执行

我想我误解了Qpromise工作。我希望我的第一个promise在下一个promise开始之前解决,但那没有发生。这是我的代码:varQ=require('q');functiondoWork(taskName){vardeferred=Q.defer();console.log('starting',taskName);setTimeout(function(){console.log('donewith',taskName);deferred.resolve();});returndeferred.promise;}doWork('taskone').then(doWork('ta