什么是everyauth 承诺?

Posted

技术标签:

【中文标题】什么是everyauth 承诺?【英文标题】:What are everyauth promises? 【发布时间】:2012-02-04 09:11:21 【问题描述】:

我不明白everyauth 的承诺是什么。

我知道我需要返回一个承诺对象或用户,但

【问题讨论】:

【参考方案1】:

当您有一个执行身份验证的函数时,它很有用,但它是异步执行的。你不能直接从函数返回用户信息(因为你必须等待回调触发),所以你返回一个promise。这是一个特殊的对象,充当“占位符”,当异步请求完成时,最终将填充用户信息。

来自the documentation的示例:

function (session, accessToken, extra, oauthUser) 
  var promise = this.Promise();
  asyncFindUser( function (err, user) 
    if (err) return promise.fail(err);
    promise.fulfill(user);
  );
  return promise;

这意味着调用上下文可以继续工作,直到它真正需要该用户信息(同时,异步请求正在完成);如果用户信息尚不可用,则必须在稍后阶段等待。您可能会将其视为线程创建和加入的一个非常具体的案例。

“Promise”是一个通用术语,涵盖各种语言和上下文中的此类功能:

在计算机科学中,future、promise 和 delay 是指在某些并发编程语言中用于同步的构造。它们描述了一个对象,该对象充当最初未知结果的代理,通常是因为尚未完成其值的计算。

【讨论】:

@Anonymous Drive-By Downvoter:你一定是在开玩笑吧?

以上是关于什么是everyauth 承诺?的主要内容,如果未能解决你的问题,请参考以下文章

何时不使用承诺 [关闭]

并行解决承诺

什么时候 Response.text() 承诺会拒绝?

回调解决未处理的承诺,为啥?

链式承诺不会在拒绝时传递

如何撤销承诺?