これはエラーを生成しているコードです。呼び出されたときにこのインテントによって生成されたフルフィルメント応答は、「応答が設定されていません。これは、インテントハンドラーへのプロミスとして返されなかった非同期呼び出しで使用されていますか?」それを修正するにはどうすればよいですか?
app.intent('getCrypto', (conv,{crypto="ethereum",cryptoactions="price"}) =>{
fetch('https://api.coinmarketcap.com/v1/ticker/').then(response => {
return response.json();
}).then(data => {
for (let i = 0; i < data.length - 1; i++) {
if (data[i].id === "bitcoin")
conv.data.price=data[i].price_usd;
conv.ask(`${conv.data.price} is the current value of ${crypto}`);
return response.json();
}
}).catch(err => {
return conv.ask(`${cryptoactions} of ${crypto} is not available. Would you like to know about another one?`);
});
});
エラーメッセージは、「これは、インテントハンドラへのpromiseとして返されなかった非同期呼び出しで使用されていますか?」という正確な問題を説明しています。
インテントハンドラから非同期呼び出しを返す必要があります。したがって、return
への呼び出しの直前に権利を追加fetch
すると、問題が修正されるはずです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加