我試圖從另一個類中調用查詢ID的值,但是當我調用該函數時,它給了我一個承諾鏈,而不是我正在尋找的值。從另一個類的承諾鏈中獲取值
在類 '助手' 的方法是下面
function querySF() {
var conn = new jsforce.Connection({
// you can change loginUrl to connect to sandbox or prerelease env.
loginUrl: 'https://www.salesforce.com'
});
return conn.login('someusername', 'password')
.then(function(userInfo) {
// Now you can get the access token and instance URL information.
// Save them to establish connection next time.
console.log(conn.accessToken);
console.log(conn.instanceUrl);
// logged in user property
console.log("User ID: " + userInfo.id);
console.log("Org ID: " + userInfo.organizationId);
// ...
return conn.query("SELECT Id FROM some place Where name = 'some name'")
})
.then(function(result) {
console.log("total : " + result.totalSize);
console.log("fetched : " + result.records.length);
// is returning the id
console.log(result.records[0].Id);
return result.records[0].Id; // can see the id here when debugging
})
.catch(function(err) {
console.error(err);
});
}
我導出這樣的模塊在類的底部:
exports.querySF = querySF();
另名爲'BookingEvent'的類調用這樣的方法:var theId = Helper.querySF;
並且它返回一個承諾,我已經將承諾打印到控制檯console.log(Helper.querySF);
看到的結果:
Promise {
_45: 0,
_81: 1,
_65: 'a0L46111001LyvsEAC', // This is the value I need
_54: null,
then: [Function],
stream: [Function: createRequest] }
人們認爲我應該能夠只使用
helpers.querySF().then(function(value){
console.log(value);
})
,並能夠獲得價值但我收到此錯誤:
Failed: helpers.querySF is not a function
我對承諾很陌生,在我們公司沒有人能夠解決這個問題。我研究了許多解決承諾的不同方式,但它們不起作用,我也不明白。有人可以幫我解決這個承諾,因此只要我打電話給這個方法,這個ID就可以訪問了,這將會多次使用我將發送的不同查詢。
告訴我,如果這個工程 - 嘗試注入$ q,然後寫:return $ q.when(result.records [0] .Id);並導出到exports.querySF = querySF; –
@Gal這是我的出口問題。我原本應該使用它。 –