gpt4 book ai didi

javascript - 从 promise 中返回另一个 promise

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:32:56 25 4
gpt4 key购买 nike

我有一个对象的 promise ,并希望获得该对象的属性的 promise 。我应该怎么做?

var user = Q.nfcall(User.findOne, {
_id: userId
});
var accessToken = Q.Promise(function (resolve, reject) {
user.then(function (user) {
if (!user) return reject(new Error('User not found.'));
if (!user.github.accessToken) return reject(new Error('Access token not found.'));
return resolve(user.github.accessToken);
}, function(err) {
return reject(err);
});
});

这是我迄今为止尝试过的方法,但我不确定它是否是最好(或最正确)的方法。

最佳答案

不要使用 deferred antipattern 1!无需使用 Promise 构造函数,.then 已经为您返回了回调结果的 promise :

var accessToken = user.then(function(user) {
if (!user) throw new Error('User not found.');
if (!user.github.accessToken) throw new Error('Access token not found.');
return user.github.accessToken;
});

[1]:你有 seen yourself它是多么容易出错:-)

关于javascript - 从 promise 中返回另一个 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29577341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com