所以我把這種可憎的東西帶到生活中,我無法爲我的生活得到我的頭如何優化它,我可以使用Promise.all/Promise.join正確運行此鏈。重寫這個frankenstein諾言鏈
任何人都能指出我正確的方向嗎?應該首先分開這些方法。
任何洞察力是讚賞。
getOpenIDConf: function() {
return client
.getAsync('openId')
.then(
function(result) {
if (!result) {
return request
.getAsync({
url: 'https://accounts.google.com/.well-known/openid-configuration',
json: true
}).spread(
function(response, body) {
var result = JSON
.stringify(body);
client.setAsync('openId',
result).then(
function() {
return result;
});
});
} else {
return result;
}
});
},
[編輯]爲了澄清,我使用藍鳥
這是否實際工作?你永遠不應該能夠返回承諾的結果。你只能退還承諾本身。 – slebetman
我似乎得到了我的結果就好了 –
您是否意味着在'spread'回調函數中返回'client.setAsync(...') – acbabis