首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RSVP.js承诺在调用.then()之前运行

RSVP.js承诺在调用.then()之前运行
EN

Stack Overflow用户
提问于 2015-09-17 15:31:44
回答 1查看 107关注 0票数 0

我认为这是一个基本的错误,但由于我的搜索没有效果,我们还是在这里做吧:)

我有一个函数返回一个承诺,但是它运行得太快了(因为代码几乎是空的),所以当调用.then()时,已经太晚了,没有调用任何事件。

之所以会发生这种情况,是因为这是一个虚拟代码(用于测试),因此,应用允诺概念是因为实际的异步请求已经完成。

那么,即使在函数被处理之后,是否也有一种方法来调用解析/拒绝函数呢?否则我将不得不使用懒散的承诺

更新:我尝试了RSVP.defer(),但不喜欢它的方法,因为它不够直观(需要一些变通方法来设置.then().catch()等等)。

EN

回答 1

Stack Overflow用户

发布于 2015-09-18 15:10:06

我有一个函数返回了一个承诺,但是它运行得太快了(因为代码几乎是空的),所以当调用.then()时,已经太晚了,也没有调用任何事件。

一点也不重要。行为良好的承诺(就像本机承诺,以及除旧jQuery之外的几乎所有库)都是在保证无论何时附加then处理程序--它都会调用处理程序(而且它总是异步调用)的情况下构建的。承诺是,只是一个值+时间

RSVP通过了1000多个测试的套件,以确保总是这样。

代码语言:javascript
复制
var p = Promise.resolve(); // create empty, already resolved promise

setTimeout(function(){ 
p.then(function(){
     // will always be called, eventually.
});
}, 1000000 + Math.random() * 10000000);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32634390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档