草庐IT

promised-mongo

全部标签

javascript - 同步 promise 解析(bluebird vs. jQuery)

我为DynamicsCRMREST/ODATAwebservice开发了一个小库(CrmRestKit)。该库依赖于jQuery并使用promise-pattern,分别是jQuery的promise-like-pattern。现在我想将这个库移植到bluebird并删除jQuery依赖项。但是我遇到了一个问题,因为bluebird不支持promise-objects的同步解析。一些上下文信息:CrmRestKit的API除了一个可选参数外,该参数定义了网络服务调用应该以同步还是异步模式执行:CrmRestKit.Create('Account',{Name:"foobar"},fal

javascript - await 的异步映射函数返回 Promise 而不是值

我有这个代码asyncfunctionaddFiles(dir,tree){return(awaitreadDir(dir)).map(async(name)=>{awaitreadDir(dir);returnname;})}但不幸的是,它只返回一堆promise,因为map中的异步函数没有被等待。我想知道是否有任何方法可以等待上面代码中的映射函数。 最佳答案 尝试asyncfunctionaddFiles(dir,tree){constfiles=awaitreadDir(dir)awaitPromise.all(files.m

javascript - 异步函数与返回 New Promise

更新我已经阅读了十几篇关于这个主题的文章,但没有一篇涉及这个基本问题。我将在本文末尾开始列出资源部分。原帖我对async函数的理解是它返回一个promise。MDN文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function在我的程序中我可以这样写:functiontestPromise(){returnnewPromise((resolve,reject)=>{//DOWORKreject()//IFWORKFAILSresolve()//IFWORKISS

javascript - AngularJS - 使用 $routeProvider :resolve 拒绝了 $http promise

我正在尝试在$routeProvider中使用resolve以仅在$http请求完成时显示新路由。如果请求成功,则$http.post()产生的promise将得到解决并呈现View。但是,如果请求失败(例如超时或内部错误),则promise永远不会得到解决,并且永远不会呈现View。如何使用resolve处理请求失败?代码中最重要的部分如下:应用程序.js$routeProvider.when('/warrantyResult',{templateUrl:'partials/warranty-result.html',controller:'WarrantyResultCtrl',r

javascript - 用于顺序执行同步和异步函数的 jQuery Deferred 和 Promise

如果我想让同步和异步函数以特定顺序执行,我可以使用jQuerypromise,但它似乎并没有像我期望的那样工作。当调用deferred.resolve()时,函数a、b和c应该按该顺序执行我希望函数b被执行,但所有函数都会立即执行决议被称为。代码如下:functiona(){vardeferred=$.Deferred();setTimeout(function(){console.log("statusina:",deferred.state());//thisshouldtriggercallingaornot?deferred.resolve("froma");},200);co

javascript - ES2017 Async/await 函数 - 它们只适用于 promises 吗?

我开始在我的js应用程序(由Babel转译)中使用async/awaitES7函数。如果错了请纠正我,但它们只适用于Promises吗?如果是,这意味着我需要将常规回调函数包装到Promises中(顺便说一句,我目前正在做的事情)。 最佳答案 当前(也可能是最终的)async/await提案等待promises和脱糖成类似bluebird的Promise.coroutine的东西,其中await扮演yield.这是有道理的,因为promise代表值(value)+时间,而您正在等待该值(value)可用。注意await也在所有其他包

javascript - 我可以用 Bluebird.js 做一个 "lazy" promise 吗?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion我想要一个类似于promise的构造,它会等到then在它运行之前被调用。也就是说,如果我从未真正调用过then,则promise将永远不会运行。这可能吗?

javascript - 使用递归 promise 阻止内存泄漏

如何使用Qlibrary创建JavaScriptPromise的递归链?以下代码无法在Chrome中完成://Don'tkeeptrackofapromisesstackfordebugging//ReducesmemoryusagewhenrecursingpromisesQ.longStackJumpLimit=0;functiondo_stuff(count){if(count==1000000){return;}if(count%10000==0){console.log(count);}returnQ.delay(1).then(function(){returndo_stu

javascript - 从 promise 中获取数据而不是返回 promise

如果其他promise线程已经回答了这个问题,我感到非常抱歉,但在查看其中一些时,我只是没有得到解决我的问题的答案。我有三个json文件,我想抓取、解析和手动合并。问题是我陷入了promisejail。让我向您展示一些来self的angularjsController的代码。$scope.tests=[];$scope.tests=$http.get('results/testResults.json').then(function(res){returnres;});console.dir($scope.tests);我从console.dir得到了一个promise,但我所希望的是

javascript - 仅保留解决并忽略被拒绝的 Promise 的值

我有一系列promise,每个promise都是一个废弃网站的请求。他们中的大多数都解决了,但可能是一两个拒绝的情况,例如该网站已关闭。我想要的是忽略被拒绝的promise,只保留已解决的promise的值(value)。Promise.all不适用于这种情况,因为它需要所有promise才能解决。Promise.some()不是我想要的,因为我事先不知道有多少promise会解决。Promise.any()与计数为1的Promise.some()相同。这个案子怎么破?我正在使用Bluebirdimplementation. 最佳答案