2017-08-30 23 views
2

說我有一個的await表達式應該返回一個數組,像這樣:調用方法 - 中間值尚未解決

let prompts = (await requestp('get', `${cdtAPIUrl}/prompts`, headers)).slice(0, 3); 

我得到這個錯誤,但是:

TypeError: (intermediate value).slice is not a function

有沒有辦法來調用「中間值」的東西,或者我應該做這個:

let $prompts = await requestp('get', `${cdtAPIUrl}/prompts`, headers); 
    let prompts = $prompts.slice(0,3); 
+0

什麼是承諾,'requestp()'返回實際解決之前登錄該值?什麼是解決的價值? – jfriend00

+2

你的第一個代碼和第二個代碼完全一樣。如果出現錯誤,那隻表明'requestp()'不能滿足數組或者使用'.slice'方法的任何事情。 – Bergi

+2

是的,你可能是對的,我想不幸的是,使用「中間值」而不是實際值,這在某處顯然是可用的。 –

回答

2

這是一個奇怪埃羅r消息,但@Bergi是正確的 - 由await表達式返回的結果不是數組,這就是運行時錯誤的原因。

例如:

let val = (await 4).slice(x); 

會給你從原來的問題的錯誤。

而:

let val = (await []).slice(x); 

應該正常工作。

1

錯誤TypeError: (intermediate value).slice is not a function 表示$prompts不是數組。

你應該嘗試調試或致電let prompts = $prompts.slice(0,3);

+0

upvoted,因爲我喜歡這個答案;) –

相關問題