什么是诺言?

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

我看到我需要返回一个承诺对象或用户,但什么是everyauth承诺?

当你有一个执行身份validation的function时非常有用,但是它是asynchronous执行的。 你不能直接从函数中返回用户信息(因为你必须等待callback才能触发),所以你可以返回一个promise 。 这是一个特殊的对象,当asynchronous请求完成时,它将充当用户信息的“占位符”。

来自文档的示例:

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

这意味着调用上下文可以继续进行正确的工作,直到真正需要用户信息(并且在此期间,asynchronous请求正在完成); 如果用户信息还不可用,它将不得不在稍后阶段等待。 你可能会认为这是一个非常具体的线程创build和连接的情况。

“ 承诺 ”是一个通用术语,涵盖了各种语言和语境中的这种function:

在计算机科学中,未来,承诺和延迟是指在一些并发编程语言中用于同步的结构。 他们描述了一个对象,它作为一个初始未知的结果的代理,通常是因为它的价值计算还没有完成。