草庐IT

promises

全部标签

javascript - 如何让 Controller 等待 promise 从 Angular 服务解决

我有一个向后端发出AJAX请求的服务服务:functionGetCompaniesService(options){this.url='/company';this.Companies=undefined;this.CompaniesPromise=$http.get(this.url);}Controller:varCompaniesOb=newGetCompanies();CompaniesOb.CompaniesPromise.then(function(data){$scope.Companies=data;});我希望我的服务处理“.then”函数,而不是必须在我的Contr

javascript - rxjs 在订阅时只使用一次 promise

我想第一次使用rxjs但有点卡住了,因为它的行为与我想要的不完全一样:在我的场景中,我想从promise中创建一个可观察对象.但我希望promise只被调用一次(不是在每个订阅上)并且我不希望它在创建时被调用(将调用推迟到第一个订阅)。首先我尝试了这个:varsource=Rx.Observable.fromPromise(_this.getMyPromise())这导致在创建时立即调用getMyPromise函数。这并不令人满意,因为那时我不知道源是否真的会被使用。然后我尝试了:varsource=Rx.Observable.defer(function(){return_this.

javascript - 在 jQuery 中取消延迟 promise

如何在不从DOM中删除元素的情况下取消promise?fiddle我运行了这段代码:$("#box").delay(2000).show("slow").delay(2000).promise().then(function(){log("Done");});在此之后,有没有办法取消promise?clearQueue()和stop(true)都不起作用,因为它不是我要取消的动画。我看到remove()应该这样做......但我只想停止promise,而不是删除整个元素。 最佳答案 好消息。从昨天开始你可以取消你的promise。我

javascript - 如何使用 Promise.promisify 确保正确的 "this"?

我正在尝试使用Bluebird库的promise来重构我的nodejs服务器,但我遇到了一个简单的问题。从我的数据库中获取用户后,我想列出与该用户关联的所有通知类:糟糕的方式(工作...)adapter.getUsers(function(users){users.rows.forEach(function(item){user=item.username;adapter.getNotifications(user,function(notificationList){console.log(notificationList);})});});优雅的尝试方式(不工作...)varget

javascript - JS promise : Fulfill vs Resolve

我理解Promise存在于以下三种状态之一:Promise可以是pending(未解决)、fulfilled(成功解决)或rejected(未成功解决)。通读A+PromiseSpec和MDN'sdocumentation,我很困惑他们都承认fulfilled和rejected状态但是在Promise构造函数的定义中他们指定了两个回调:resolve和拒绝。看来我们可以互换使用这两个术语;他们不是。不代表成功:re·solve/rəˈzälv/verb1.settleorfindasolutionto(aproblem,dispute,orcontentiousmatter).是否暗示

Javascript:如何使用 promise 迭代数组?

LIVEDEMO给定以下函数:functionisGood(number){vardefer=$q.defer();$timeout(function(){if(){defer.resolve();}else{defer.reject();}},100);returndefer.promise;}和一组数字(例如[3,9,17,26,89]),我想找到第一个“好”的数字。我希望能够做到这一点:vararr=[3,9,17,26,89];findGoodNumber(arr).then(function(goodNumber){console.log('Goodnumberfound:'

javascript - 在 JavaScript 中扁平化 promise

bluebird库似乎自动使用Promise::then作为promise上的“map”和“flatMap”的等价物,例如参见这个例子。varPromise;Promise=require('bluebird').Promise;Promise.resolve(1).then(function(x){returnPromise.resolve(x+1);}).then(function(x){returnconsole.log(x);//=>`2`(notapromise)});Promise.resolve(1).then(function(x){returnx+1;}).then(

javascript - 使用 promise 等待触发的事件

在下面的代码中,thing是一个我无法控制的外部对象;我无法更改thing的事件系统的工作方式。当fn被调用时,我们返回一个promise,其执行者监听一个事件,然后开始等待一系列最终导致该事件被触发的函数:functionfn(){returnnewPromise(asyncfunction(resolve,reject){//Thishandlermustbeattachedbefore`c`iscalledthing.once('myEvent',function(e){resolve(e.data);//done});//Theorderofthesefunctionscall

javascript - 如何在 when 函数中延迟 promise

如何延迟promise链?我需要这个,因为我想在继续执行脚本之前等待CSS动画完成。该函数的目的是打开一个View。如果View尚未打开,则打开它(通过更改类),等待css动画,继续。如果View已经打开,则什么都不做并继续。我想这样调用函数:(它是AngularController中的一个函数)$scope.openView(viewId).then(function(){$scope.openAnotherView(anotherViewId);});/**Functiontoopensomeview**/$scope.openView=function(viewId){funct

javascript - 返回一个等待的值会返回一个 Promise? (es7 异步/等待)

constret=()=>newPromise(resolve=>setTimeout(()=>resolve('somestring'),1000));asyncfunctionwrapper(){letsomeString=awaitret();returnsomeString;}console.log(wrapper());它记录Promise{};为什么它返回一个Promise而不是'somestring'?我正在使用BabelES7预设来编译它。 最佳答案 异步函数返回promise。为了做你想做的事,试试这样的事情wra